これを達成する唯一の方法は、matfile
を使用してファイルを読み取ることです。これは、parts of variablesのみを読み取ることができるためです。また、ファイルがintitially
matfile
のみバージョン7.3形式のMAT-ファイルのための効率的な部分のロードと保存をサポートしてい7.3
形式で保存されたことを前提としています。バージョン7(現在のデフォルト)または以前のMATファイルで変数にインデックスを付けると、MATLAB®は変数の内容全体を警告し、一時的に読み込みます。
最初にデータを保存するには、-7.3
フラグを指定します。
save('Cellmat.mat', 'Cellmat', '-v7.3')
次に、あなたがCellmat
から必要だけ要素をロードするためにmatfile
を使用することができます。 ()
インデックス作成(M2
になるようにインデックスを作成できるセルが生成されます)を使用してアクセスしなければならないことに注意してください。Cellmat
にインデックスを付けるときは、行とカラムの添字を指定する必要があります。
mat = matfile('Cellmat.mat');
% A little workaround because you can't use {} indexing on matfile objects
tmp = mat.Cellmat(1, 2);
M2 = tmp{1};
「古い学校」の代替は感謝を別々の変数にあなたのセル配列を破り、/負荷にちょうどそれらの変数
thing = Cellmat{1};
other_thing = Cellmat{2};
save('Cellmat.mat', 'thing', 'other_thing');
% Only load in one variable
M2 = load('Cellmat.mat', 'other_thing');
を保存するだろう、それは働きました! Matlabにはこれを行うための標準的な方法はありません。 –
@Lovsovsこれは標準的な方法です。 'matfile'の前に私は最後の編集で示したように複数の変数でそれをやらなければならなかった – Suever
私はそれが最善の方法であると確信しています、それは私が意味していたものではありません。それを行う「ハッキー」な方法(v7.3とtmpとそのすべてのジャズ)、すなわちIMO Matlabは同じ目的を達成するより直感的な方法を持つべきです。再度、感謝します。 :) –