我在GNU Octave工作,我需要解决以下等式:A*x=b
(A,x,b是矩阵)。
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);
答案 0 :(得分: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);