매트랩 행렬 계산 파이썬으로 변환

조회수 69회
# Matlab 코드
A=zeros(10,10);
mask = [0; 0; 1; 0; 1; 1; 1; 0; 1; 1];

A(mask, ~mask) = -1
A(~mask, mask) = 1

>># 결과값 
                [ 0 -1 0 -1 -1 -1 -1 -1 -1 0
                  1  0 1  0  0  0  0  0  0 1
                  0 -1 0 -1 -1 -1 -1 -1 -1 0
                  1  0 1  0  0  0  0  0  0 1
                  1  0 1  0  0  0  0  0  0 1
                  1  0 1  0  0  0  0  0  0 1
                  1  0 1  0  0  0  0  0  0 1
                  1  0 1  0  0  0  0  0  0 1
                  0 -1 0 -1 -1 -1 -1 -1 -1 0 ]

위의 코드를 파이썬으로 변환하려고 합니다.

다음과 같은 코드를 만들어 보았습니다.

#작성해 본 python 코드
A=np.zeros((10,10));
mask = [ [0], [0], [1], [0], [1], [1], [1], [0], [1], [1]];

inv_mask = np.logical_not(mask)*1; # 0<->1 반전 코드 
Loc_mask = mask.ravel().nonzero()[0]; # 0이 아닌 요소들의 위치
inv_Loc_mask = inv_mask.ravel().nonzero()[0]; # 반전된 mask에서의 0이 아닌 요소들의 위치

A[Loc_mask,  inv_Loc_mask] = -1; 
A[inv_Loc_mask, Loc_mask] = 1;

그런데 결과값이 다르게 나오더군요.. 어느 부분이 잘못된 것인가요?

위의 matlab 코드를 python 코드로 변환하는 방법을 알려 주시면 감사하겠습니다.

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.