我正在创建一个通用脚本,用于打开包含相同基本信息的预制数据文件,但原始文件的命名方式不一致。
例如,同一个变量在不同的文件中有3个不同的变体:
Data01.SubData
Data01.SubData_01
Data01.SubData01
有没有办法让Matlab查找并调用任何以“Data01.SubData”开头的变量,而不管名称中的最终字符是什么?任何帮助表示赞赏。
答案 0 :(得分:2)
当然,您可以使用fieldnames
获取名称列表,进行匹配,然后抓住您想要的字段:
f = fieldnames(Data01);
match = regexp(f, '^SubData.*');
fieldnum = find(~cellfun(@isempty, match));
subdata = Data01.(f{fieldnum});
如果混淆在顶层而不是在子层级,你可以通过将.mat文件加载到另一个结构中来做同样的事情,而不是将变量直接转储到工作区:mydata = load('somefile.mat');
< / p>