matfileに格納されている構造体の一部の変数のみをワークスペースに読み込む方法はありますでしょうか
30 views (last 30 days)
Show older comments
matfileに
S.a
S.b
S.c
という構造体Sがある場合にS.bのみをワークスペースに読み込むことは可能でしょうか。
0 Comments
Accepted Answer
交感神経優位なあかべぇ
on 30 Jun 2023
構造体Sが保存されたmatファイルのS.bのみを抽出するサンプルを作成してみました。
用途は分かりませんが、下記の例は、MATLABの内部的に一度構造体Sの全てのデータの読み込みをしていますので、読み込み時間が短縮されるといったことはありません。また、matファイルのS変数内のbのメンバーのみ読み込みして、読み込み時間を短縮させるといった方法はおそらくないのではと思います。
S = struct('a',1,'b',2,'c',3);
save('test.mat', 'S'); %サンプル用matファイル作成
mat = matfile('test.mat');
b = getfield(mat.S, 'b')% bのメンバーを抽出
0 Comments
More Answers (1)
Takao
on 2 Jul 2023
2 Comments
交感神経優位なあかべぇ
on 3 Jul 2023
Edited: 交感神経優位なあかべぇ
on 3 Jul 2023
一応、保存する際に構造体にせずに、それぞれの変数a,b,cとしてmatファイルに保存すれば、読み込みの際に、変数bだけを読み込ませるといったことは可能です。
a = 1;
b = 2;
c = 3;
save('test.mat', 'a', 'b', 'c');%サンプル用matファイル作成
m = matfile('test.mat');
m.b % bの変数を読み込み(この時、変数a,bの読み込みは行われないので、読み込み時間は速くなる。)
See Also
Categories
Find more on ワークスペース変数と MAT ファイル in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!