Python to MATLAB: exporting list of strings using scipy.io

前端 未结 2 686
情话喂你
情话喂你 2021-01-11 11:47

I am trying to export a list of text strings from Python to MATLAB using scipy.io. I would like to use scipy.io because my desired .mat file should include both numerical ma

相关标签:
2条回答
  • 2021-01-11 11:58

    You need to make my_list an array of numpy objects:

    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})
    

    Then it will be saved in a cell format. There might be a better way of putting it into a np.object, but I took this way from the Scipy documentation.

    0 讨论(0)
  • 2021-01-11 12:00

    It looks like the contents of the list are exported properly, they are just transposed and placed in a character array. You can easily convert it to the desired cell array of strings in MATLAB by transposing it and using CELLSTR, which places each row in a separate cell:

    >> 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'
    

    Granted, this doesn't address the more general issue of exporting data as a cell array from Python to MATLAB, but it should help with the specific problem you list above.

    0 讨论(0)
提交回复
热议问题