2016-11-11 73 views
0

我在GNU Octave中工作,我需要解决以下等式:A*x=b(A,x,b是矩阵)。Octave operator error

A = [1 1; 2 1]; 
b = [1, 2]; 

所以我根据我的指导做了x = A \ b。但我得到一个错误:

operator \: nonconformant arguments (op1 is 2x2, op2 is 1x2) 

我明白这是什么意思,但不知道如何解决这个问题。我已经试过inv(A) * b


顺便说一句,它在MATLAB中完美的作品。这是我的脚本:

A = input('Enter A'); 
b = input('Enter b'); 
x = A \ b; 
display(x); 

回答

2

问题是与b维度它应该是列而不是行。

x = A\b.'; 
% or for clarity 
x = A\transpose(b); 

编辑:

如果使用inv再次,你需要使用正确的尺寸:

x = inv(A)*b.'; 
% or for clarity 
x = inv(A)*transpose(b); 
+0

它的工作原理,但根据数学X = A ^( - 1)* b。正如我所知,operator \与此相当。那么有什么问题? – Russiancold

+0

这是真的,你仍然需要'inv(A)* b.''来使这些尺寸成为可能。 – mpaskov

+0

我们可以在这里验证是否存在MATLAB不兼容性?这将保证bugs.octave.org错误报告 –