R2013bのFrom Fileのヘルプによると、読み込み元の.matファイルはarray、timeseriesのどちらの形式でもよいが、array形式の場合その信号は
Use array format only for vector, double, noncomplex signals.
でなければならない。すなわち、
- vectorでなければならず、scalarはダメ。
- doubleでなければならず、intはダメ。
- realでなければならず、complexはダメ。
またarray形式の場合そのファイルフォーマットは
The array format for stored data is a matrix containing two or more rows. The matrix in the MAT-file must have the following form:
でなければならない。すなわち
- 1行目はタイムスタンプでなければならない。
- 2行目以降は1行単位のデータでなければならない。
↓ 確かめてみる。
- ルールどおりにする。正常に読み込める。型は何も指定しなければdoubleとの由。
t=linspace(0,2*pi,361); a=[ 0:360; 100*sin(t); 100*cos(t); 100*sin(2*t)]; save sute.mat a
- たといrealであっても型がintだとエラーが出る。From File側で勝手にキャストしてくれてもよさそうなものだがしてくれない。
t=linspace(0,2*pi,361); a=[ 0:360; 100*sin(t); 100*cos(t); 100*sin(2*t)]; a=int16(a); save sute.mat a