Matlab 코드를 python 코드로 변환

조회수 1422회

다음의 matlab 코드를 python 코드로 바꾸려고 합니다.

```
    # Matlab code
    diagP = find (repmat(reshape(eye(10, 10), 1, 10, 10), 1024, 1, 1))
    X = zeros(1024, 10, 10, 8); 
    X(diagP) = 2;
```

보시다시피 4차원 배열로, X(a,b,b,1) = 2 { a는 1부터 1024까지, b는 1부터 10까지} 이고 나머지 값들은 0을 나타내야합니다.

        #python code
        preFindP = np.kron(np.ones((1024, 1, 1)), np.eye(10, 10).reshape(1, 10, 10));
        diagP = preFindP.ravel().nonzero();       
        X = np.zeros(1024*10*10*8);
        X[diagP[0][:]] = 2; # 여기서 차이발생하는 것 같음. python 번호 메김 스타일이 다름
        X= X.reshape(1024, 10, 10, 8);

위와 같이 코드를 만들어 보았으나, X 값이 matlab의 값과 달라지는 것을 확인했습니다. 배열 생성시 순서가 달라 X[diagP[0][:]] = 2 에서 문제가 발생하는 것 같은데 문제해결 방법을 모르겠습니다.

위의 matlab code를 어떻게 변환할 수 있을까요?

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

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

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

(ಠ_ಠ)
(ಠ‿ಠ)