[英]Find Conversion matrix in Matlab
我在matlab中有一個簡單的問題。 我有等式:A * H = b我知道A和b我嘗試使用此表達式:
H=A\b;
但我得到了錯誤的值:例如:
A =
231 481
233 488
241 481
243 489
b =
11 31
6 20
21 31
18 22
我得到
H =
1.1627 0.2713
-0.5396 -0.0791
所以
A*H
ans =
9.0386 24.6299
7.5868 24.6189
20.6659 27.3434
18.6745 27.2532
這不是
在命令提示符處輸入help slash
:
\\反斜杠或左除法。
A \\ B是A到B的矩陣除法,與INV(A)* B大致相同,只是它的計算方法不同。 如果A是一個N×N矩陣,而B是具有N個分量的列向量,或者是具有多個此類列的矩陣,則X = A \\ B是方程A * X = B的解。警告消息是印刷,如果A被嚴重縮放或幾乎奇異。 A \\ EYE(SIZE(A))產生A的倒數。
如果A是具有M <或> N的M×N矩陣,而B是具有M個分量的列向量,或具有多個這樣的列的矩陣,則X = A \\ B是對A的最小二乘解。方程組A * X = B的系統是否過高或過高。A的有效秩K由帶有樞軸的QR分解確定。 計算出每列最多具有K個非零分量的解X。 如果K <N,則通常將與PINV(A)* B不同。 A \\ EYE(SIZE(A))產生A的廣義逆。
因此,第二段適用於您的情況。 換句話說,對於您的問題,沒有任何一個H
可以滿足A*H = b
,但是Matlab計算出了最佳近似值(在最小二乘意義上)。 因此,您得到的結果是正確的。
h = b ./ A;
h = 0.0476 0.0644
0.0258 0.0410
0.0871 0.0644
0.0741 0.0450
A.*h = 11 31
6 20
21 31
18 22
或者,您可以添加.
到您的部門,即h = A .\\ b
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.