2017-04-03 2 views
0

그림에서와 같이 T 반전을 찾고 싶습니다. 첫 번째 그림은 행렬 T이고 다른 하나는 T inverse입니다. Matlab : 행렬의 역수를 계산하는 방법

T inverse

I = eye(3); 
T = [I/2, (j/2)*I, 0; 
    I/2, (-j/2)*I, 0; 
    0,0,I]; 

오류 사용 horzcat CAT 인수 치수

T

는 일치하지 않습니다.

그런 다음 I = eye(2)과 함께 시도하고 같은 오류가 발생했습니다. 적절한 방법은 무엇입니까?

+1

inv''뭐가 잘못을 - 결과 때 Google matlab + matrix + inverse? imaginay 단위를'1i' 또는'1j'로 지정하십시오. – thewaywewalk

+1

@thewaywewalk 필자는 주된 문제는 OP가 리터럴 '0'을 사용하는 반면 작성된 방정식은 행렬 ** 0 **을 사용한다는 점이라고 생각합니다. 따라서 치수 오차. – TroyHaskin

답변

3

당신이 (가변 j 당신이 1j 아닌 정의되지 않은 가상 기기를 사용하십시오)

A = [1/2, (1j/2), 0; 
    1/2, (-1j/2), 0; 
    0,0,1]; 

얻을 Aelement-wise using .*을 곱하려는

I = eye(3); 

을 감안할 때 T

T = A.*I 

그러나 떨어져 당신이 실제로 일정한 C = I = 1

T = A.*1 

당신이 inverse 기능을 얻기 역 A을 곱하려는 느낌과는 :

Tinv = inv(T) 
+0

Tinv = 2.0000, 0, 0; 0, 0 + 2.0000i, 0; 0, 0, 1.0000; – SKM

+0

두 번째 줄의 요소에 대해 다른 값을 얻고 있습니다. 첫 번째 열은 그림에서 -jI이지만 코드의 출력에서는 요소가 0입니다. 또 다른 한 가지는 'Tinv'에 대한 그림에서 ther이 '2'는 아니지만 Matlab은 '2'로 곱한 값을 갖습니다. 'Tinv'가 내 것과 같은 결과를 얻었는지 확인하고 알려주시겠습니까? – SKM

+1

@SKM이 답변의 코드는 귀하의 질문에 주어진 답과 일치하는 정확한 답을 제공합니다. A = [1/2, (1j/2), 0; 1/2, (-1j/2), 0; 0,0,1];'Then inv (A) = [1, 1, 0; -i, i, 0; 0, 0, 1]; '로 설정됩니다. 작업 공간을 지우고 ('clear'을 사용) 다시 시도하십시오. – Wolfie

관련 문제