assign loaded structs directly

I wonder, if there is no nicer way for doing this:
mdlPara = load([datasetPath,datasetName]);
rename = fieldnames(mdlPara);
mdlPara = mdlPara.(rename{1});
I want to load different named structs in my script. For acessing the data in the script I want them to have the same name (mdlPara). But with just loading them the struct is named
mdlPara.OLDSTRUCTNAME.Data. ...
is there a nicer way to get the form
mdlPara.Data. ...
directly

回答 (2 件)

Matt J
Matt J 2014 年 10 月 29 日
編集済み: Matt J 2014 年 10 月 29 日

1 投票

No, I don't think there is a shorter way, but to avoid typing this repeatedly, you can just wrap it in a function,
function mldPara = loadfirstvar(varargin)
mdlPara = load(varargin{:});
rename = fieldnames(mdlPara);
mdlPara = mdlPara.(rename{1});
Titus Edelhofer
Titus Edelhofer 2014 年 10 月 29 日

1 投票

Hi,
not really. But what you can do is to save the data as individual variables originally. So when you save your structure OLDSTRUCTNAME, do
save('thefile.mat', '-struct', 'OLDSTRUCTNAME');
When you load them afterwards, you don't have the structure name in mdlPara.
Titus

カテゴリ

ヘルプ センター および File ExchangeStructures についてさらに検索

質問済み:

2014 年 10 月 29 日

回答済み:

2014 年 10 月 29 日

Community Treasure Hunt

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

Start Hunting!

Translated by