Use a string as a struct name
150 ビュー (過去 30 日間)
古いコメントを表示
In different files, I have a struct. Each struct has the same underlying structure and variable names. But the name of each struct is different, yet predicable by the filename
I want to programatically load the files (no problem), create a string from information in the filename (no problem), and then use this string as the structname. For example (getting data in the matrix 'age'):
filename = 'output_setting1.mat'
structname = 'setting1'
data = setting1.age
How can I convert structname = 'setting1' so I can use it as shown in the last line?
0 件のコメント
回答 (1 件)
Walter Roberson
2019 年 11 月 10 日
filename = 'output_setting1.mat';
file_struct = load(filename);
fn = fieldnames(file_struct);
data_struct = file_struct.(fn{1});
data = data_struct.age;
No need to dynamically create the name of a variable: you can create the name of a field instead.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Structures についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!