_:n84e5d94c3bdc4b18864b6327ab379559xb0
<http://schema.org/articleBody>
"概要 MATLAB のデータを numpy で利用したかったので、scipy で読み込んでみた。 Octave でデータの作成 MATLAB が手元になかったので、Octaveで m.mat を作成。 $ octave -q octave:1&gt; m = zeros(8, 8) m =  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  octave:2&gt; m(3:6, 3:6) = 1 m =  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  octave:3&gt; save data.mat m -mat octave:4&gt; save data.txt m オプション -mat を付けない場合はテキストデータなので、コンソールで読める。 data.txt # Created by Octave 4.2.1, Fri Dec 08 01:32:35 2017 JST     NAME: M    TYPE: MATRIX    ROWS: 8    COLUMNS: 8   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  scipy でMATLAB形式のデータを読み込み scipy を使用し data.mat を読みこむ。 $ ipython Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04) Type &#39;copyright&#39;, &#39;credits&#39; or &#39;license&#39; for more information IPython 6.2.1 -- An enhanced Interactive Python. Type &#39;?&#39; for help.  In [1]: import scipy.io  In [2]: data = scipy.io.loadmat(&quot;data.mat&quot;)  In [3]: type(data[&quot;m&quot;]) Out[3]: numpy.ndarray  In [4]: data[&quot;m&quot;] Out[4]: array([[ 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 1., 1., 1., 1., 0., 0.], [ 0., 0., 1., 1., 1., 1., 0., 0.], [ 0., 0., 1., 1., 1., 1., 0., 0.], [ 0., 0., 1., 1., 1., 1., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0.]]) ↑のようにして読み込むことができた。 scipy で MATLAB 形式のデータを書き込み 逆に書き込むこともできる。 行列データmの中身をすべて -1 したものを data-1.mat として書き込む。 In [5]: data[&quot;m&quot;] = data[&quot;m&quot;] - 1  In [6]: data[&quot;m&quot;] Out[6]: array([[-1., -1., -1., -1., -1., -1., -1., -1.], [-1., -1., -1., -1., -1., -1., -1., -1.], [-1., -1., 0., 0., 0., 0., -1., -1.], [-1., -1., 0., 0., 0., 0., -1., -1.], [-1., -1., 0., 0., 0., 0., -1., -1.], [-1., -1., 0., 0., 0., 0., -1., -1.], [-1., -1., -1., -1., -1., -1., -1., -1.], [-1., -1., -1., -1., -1., -1., -1., -1.]])  In [7]: scipy.io.savemat(&quot;data-1.mat&quot;, data) Octave でMATLAB形式のデータを読み込み scipy によって作成した data-1.mat をOctaveで読み込む。 $ octave -q octave:1&gt; load data-1.mat m -mat octave:2&gt; m m =  -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 -1 -1 -1 -1 0 0 0 0 -1 -1 -1 -1 0 0 0 0 -1 -1 -1 -1 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 読み込めた。 めでたしめでたし。 参考  https://docs.scipy.org/doc/scipy/reference/tutorial/io.html "
<https://blog.monophile.net/posts/20131125_matlab_python.html>