2016-10-13 19 views
0

私はSimulinkモードを実行するMatlabのスクリプトをPythonから実行しようとしています。変数をPower.matとして保存し、この変数をPythonで読み込みます。私はWindowsでPython 2.7を使用しています。Pythonから.matファイルを読み込みます

私は、ファイルを読み取るためのライブラリhdf5storageを使用しようとしました:

import hdf5storage 
x=hdf5storage.loadmat('Power.mat','r') 

が、私はエラーが添付得ます。 error

これは問題がありますか? 私もライブラリh5pyを試しましたが、同じエラーが発生します。 Matlabで問題なく開いているので、ファイル.matが壊れていないようです。

ありがとうございます!

+0

これは、関連しますか? http://stackoverflow.com/questions/31287744/corrupt-files-when-creating-hdf5-files-without-closing-them-h5py – cdarke

+0

'x = hdf5storage.loadmat( 'Power.mat')'は動作しますが、それはテストするために必要なパッケージを永久にダウンロードする:) –

+1

'Power.mat'をバージョン7.3のMATファイルとして保存しましたか?以前のバージョンはHDF5ではありません。 MATLABから: 'type( 'Power.mat')'はMATファイルのバージョンを示します。バージョンを指定するには 'save( 'Power.mat'、 '-v7.3')'を使用します。 – smn

答えて

2

scipy.ioを使用して、PythonとMatlab間でデータを交換できます。この目的のためにsavematとloadmatという名前の関数があります。このような

何かが動作するはずです:参考

import scipy.io 
mat = scipy.io.loadmat('Power.mat') 

を、http://docs.scipy.org/doc/scipy/reference/generated/scipy.io.loadmat.html

+1

4種類の '.mat'ファイル形式があります。最初の3つの「v4」、「v6」、および「v7」は、独自のバイナリ形式です。それらは「scipy」が開くことができるものです。最後の 'v7.3'は特殊なhdf5ファイルです。それが 'hdf5storage'が開くことができるものです。技術的には、hdf5ファイルを扱えるものであれば何でもオープンできますが、hdf5storageにはMATLAB固有のビットを適切に処理するためのツールがいくつかあります。さもなければ、かなり醜い(しかし、最終的には使える)出力が得られます。 – TheBlackCat

0

は、このコードを試してみてください。

import h5py 
Data = h5py.File('File.mat') 
関連する問題