在不使用全名的情况下在Matlab中调用变量?

时间:2015-06-09 15:30:19

标签: matlab variables filenames

我正在创建一个通用脚本,用于打开包含相同基本信息的预制数据文件,但原始文件的命名方式不一致。

例如,同一个变量在不同的文件中有3个不同的变体:

Data01.SubData

Data01.SubData_01

Data01.SubData01

有没有办法让Matlab查找并调用任何以“Data01.SubData”开头的变量,而不管名称中的最终字符是什么?任何帮助表示赞赏。

1 个答案:

答案 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>