2016-11-11 6 views
0

나는 GNU 옥타브에서 일하고있어 다음 방정식을 풀어야한다 : 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); 

답변

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의 버그 보고서가 보증됩니다. –