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