% save .mat file in the matlab
train_set_x=1:50*1*51*61*23;
train_set_x=reshape(train_set_x,[50,1,51,61,23]);
save(['pythonTest.mat'],'train_set_x','-v7.3');
matlabで取得されたデータのサイズは(50,1,51,61,23)です。Pythonで.matファイルを読む。しかし、データの形状が変更されました
このlinkの命令でPythonで.matファイルを読み込みます。次のように
コードは次のとおり
import numpy as np, h5py
f = h5py.File('pythonTest.mat', 'r')
train_set_x = f.get('train_set_x')
train_set_x = np.array(train_set_x)
train_set_x.shapeの出力が(23L, 61L, 51L, 1L, 50L)
です。それは(50L, 1L, 51L, 61L, 23L)
であると予想されます。だから私は形状を変更しました
train_set_x=np.transpose(train_set_x, (4,3,2,1,0))
私はPythonとmatlabの間のデータ形状の変化について興味があります。私のコードにいくつかのエラーがありますか?
:http://stackoverflow.com/q/24116713
ところで、代わりに
train_set_x
を転置、あなたは "Fortranの" オーダー(COL-主要Matlabの中など)への順序を設定してみてください/ 1714410 – Shai以前の '.mat'バージョンでは、' scipy.io.loadmat'はMATLABと同じ形状の配列を生成しますが、 'order = 'F''です。したがって、この違いを隠すことになります。 – hpaulj
@hpaulj:あなたは早期にどういう意味ですか? 「遅い」マットバージョンの動作変更は何ですか? – Eric