在Matlab中查找转换矩阵

时间:2012-08-19 16:36:54

标签: 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

这不是b

2 个答案:

答案 0 :(得分:1)

在命令提示符下键入help slash

  

\反斜杠或左划分。

     

A \ B是A到B的矩阵划分,与B大致相同   INV(A)* B,除非以不同的方式计算。如果A是N-by-N   矩阵和B是具有N个分量的列向量,或者是具有矩阵的矩阵   几个这样的列,然后X = A \ B是方程A * X的解   = B.如果A严重缩放或接近单一,则打印警告消息。 A \ EYE(SIZE(A))产生A的倒数。

     

如果A是M-by-N矩阵,其中M

因此,第二段适用于您的情况。换句话说,没有H可以满足A*H = b您的问题,但Matlab计算它的最佳近似值(在最小二乘意义上)。所以你得到的结果是正确的。

答案 1 :(得分:-1)

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