문제

Scipy.io를 사용하여 Python에서 Matlab으로 텍스트 문자열 목록을 내보내려고합니다. 원하는 .MAT 파일은 두 숫자 행렬 (배운 법을 배웠습니다. 여기) 및 텍스트 셀 어레이.

나는 시도했다 :

import scipy.io
my_list = ['abc', 'def', 'ghi']
scipy.io.savemat('test.mat', mdict={'my_list': my_list})

Matlab에서는 test.mat를로드하고 문자 배열을 얻습니다.

my_list =

adg
beh
cfi

scipy.io를 Matlab 셀 어레이로 내보내는 방법은 무엇입니까?

도움이 되었습니까?

해결책

my_list를 Numpy 객체의 배열로 만들어야합니다.

import scipy.io
import numpy as np
my_list = np.zeros((3,), dtype=np.object)
my_list[:] = ['abc', 'def', 'ghi']
scipy.io.savemat('test.mat', mdict={'my_list': my_list})

그런 다음 셀 형식으로 저장됩니다. NP.Object에 넣는 더 나은 방법이있을 수 있지만, 나는이 길을 Scipy 문서.

다른 팁

목록의 내용이 올바르게 내보내는 것처럼 보이며 방금 변환되어 문자 배열에 배치됩니다. 그것을 운송하고 사용하여 Matlab에서 원하는 셀 어레이로 쉽게 변환 할 수 있습니다. Cellstr, 각 행을 별도의 셀에 배치합니다.

>> my_list = ['adg';'beh';'cfi'];  %# Your example
>> my_list = cellstr(my_list')    %'# A 3-by-1 cell array of strings

my_list = 

    'abc'
    'def'
    'ghi'

물론, 이것은 더 많은 것을 다루지 않습니다 일반 Python에서 MATLAB으로 셀 어레이로 데이터를 내보내는 문제이지만 도움이 될 것입니다. 특정한 위에 나열된 문제.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top