2

そのため、リストに読み取ったCSVファイルがあります。そのリストを配列に変換し、次の関数を使用して配列を MATLAB ファイルに保存しました。

def save_array(arr,filename):
    import scipy.io
    out_dict={}
    out_dict[filename]=arr
    scipy.io.savemat(filename + '.mat',out_dict)

しかし、MATLAB ファイルを開くと、問題が発生します。Python で開くと、次の出力が得られます。

{'M': array([[u'153  ', u'81   ', u'0.28 ', ..., u'0.19 ', u'-0.07', u'1    '],
   [u'168  ', u'76   ', u'0.08 ', ..., u'0.98 ', u'0.42 ', u'0    '],
   [u'184  ', u'92   ', u'0.18 ', ..., u'0.92 ', u'0.75 ', u'0    '],
   ..., 
   [u'183  ', u'62   ', u'0.57 ', ..., u'0.87 ', u'0.31 ', u'0    '],
   [u'181  ', u'72   ', u'0.48 ', ..., u'0.91 ', u'1.2  ', u'0    '],
   [u'158  ', u'77   ', u'1.01 ', ..., u'0.99 ', u'0.88 ', u'0    ']], 
  dtype='<U5'),
 '__globals__': [],
 '__header__': 'MATLAB 5.0 MAT-file Platform: posix, Created on: Tue Nov  5 15:28:57 2013',
 '__version__': '1.0'}

u各要素の先頭に a があるのはなぜですか? どうすればこれを修正できますか?

4

1 に答える 1

3

CSV ファイルを読み込んで、文字列の配列を取得していることがわかります。それらを保存する前に、それらを浮動小数点数の配列に変換できます。

import numpy as np
out_dict[filename]=np.array(arr, dtype=np.float64)
于 2013-11-05T20:50:04.317 に答える