2016-11-11 44 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錯誤報告 –