MATLAB 运算符的排序

Ordering of MATLAB operator

我试图理解用于研究的 MATLAB 代码,但似乎陷入了关于转置运算符和 ml 除运算符顺序的基本问题。 (请看下面的代码)

C = randi([0 ,1], [3,3])
D = randi([0 ,1], [3,3])

disp("C-(D')*(C\D')")
disp(C-(D')*(C\D'))

(您可能需要 运行 多次,直到存在逆函数)

因为转置运算符是在 \ 运算符之前计算的,所以 C\D' 似乎应该等于找到 x s.t。 C=(D')*x...但是,当我将 x 替换为 C\D' 并显示 C-(D')*x 时,我没有得到零...任何人都可以给我一个原因吗?

C = [0,0,1;0,1,0;1,0,1];
D = [1,1,0;1,0,1;1,0,0];
%% rule
% "A \ B" equal to "inv(A) * B"
% "B / A" equal to "B * inv(A)"
%% mine
X = C / D'; % X = C * inv(D')
C - X * D'  % C - (C * inv(D')) * D' = C - C * (inv(D') * D') = 0
%% yours
Y = C \ D'; % Y = inv(C) * D'
C - D'* Y   % C - D' * (inv(C) * D') ≠ 0