매트랩 행렬 계산 파이썬으로 변환
조회수 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 코드로 변환하는 방법을 알려 주시면 감사하겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력