我試圖理解用于研究的 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'應該等于找到xst C=(D')*x......但是,當我替換xasC\D'和 display時C-(D')*x,我沒有得到零......誰能給我一個理由?
uj5u.com熱心網友回復:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/426523.html
