matfileに格納​されている構造体の一​部の変数のみをワーク​スペースに読み込む方​法はありますでしょう​か

17 visualizzazioni (ultimi 30 giorni)
Takao
Takao il 30 Giu 2023
Commentato: Takao il 3 Lug 2023
matfileに
S.a
S.b
S.c
という構造体Sがある場合にS.bのみをワークスペースに読み込むことは可能でしょうか。

Risposta accettata

交感神経優位なあかべぇ
構造体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のメンバーを抽出
b = 2

Più risposte (1)

Takao
Takao il 2 Lug 2023
回答ありがとうございます。
おっしゃる通りで複数の計測データをmatfileに変換する際にデータサイズがかなりおおきくなってしまったので、読み込み時間を短縮できないかと思い、質問いたしました。
やはり読み込み時間を短縮するやり方はないんですね。。
  2 Commenti
交感神経優位なあかべぇ
Modificato: 交感神経優位なあかべぇ il 3 Lug 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の読み込みは行われないので、読み込み時間は速くなる。)
ans = 2
Takao
Takao il 3 Lug 2023
ありがとうございます。確かにmatに保存する際に工夫するやり方もありますね。トライしてみます

Accedi per commentare.

Tag

Prodotti


Release

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!