簡體   English   中英

在Matlab中查找轉換矩陣

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM