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

조회수 845회
# 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 코드로 변환하는 방법을 알려 주시면 감사하겠습니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

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

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)