我在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
答案 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