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

조회 수: 85 (최근 30일)
Takao
Takao 2023년 6월 30일
댓글: Takao 2023년 7월 3일
matfileに
S.a
S.b
S.c
という構造体Sがある場合にS.bのみをワークスペースに読み込むことは可能でしょうか。

채택된 답변

交感神経優位なあかべぇ
構造体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

추가 답변 (1개)

Takao
Takao 2023년 7월 2일
回答ありがとうございます。
おっしゃる通りで複数の計測データをmatfileに変換する際にデータサイズがかなりおおきくなってしまったので、読み込み時間を短縮できないかと思い、質問いたしました。
やはり読み込み時間を短縮するやり方はないんですね。。
  댓글 수: 2
交感神経優位なあかべぇ
편집: 交感神経優位なあかべぇ 2023년 7월 3일
一応、保存する際に構造体にせずに、それぞれの変数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 2023년 7월 3일
ありがとうございます。確かにmatに保存する際に工夫するやり方もありますね。トライしてみます

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 ワークスペース変数と MAT ファイル에 대해 자세히 알아보기

태그

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!