我有多个已加载到MATLAB工作区的向量(+100),我想编写一个可以绘制并保存它们的脚本,但为此我需要他们的名字,我的问题是:有没有办法自动获取保存在工作区中的名称向量。
提前谢谢。答案 0 :(得分:3)
您可以使用who,它会在活动工作区中按字母顺序列出所有变量。
答案 1 :(得分:3)
第一步:谁给你一个* .mat文件,其中包含100多个命名变量,[审查强大的语言和一些观众可能会发现令人不安的场景]。我只是在这里开玩笑;如果你发现自己处于这种情况通常是因为某些事情在上游出现了严重错误。不过,我们可以解决这个问题。
第二步:使用who
和文件名来获取该文件中的变量列表
names = who('-file', 'all');
第三步:将变量(或其子集)加载到struct
中data = load('all.mat');
第四步:使用动态结构命名来提取数据:
for n = 1:length(names);
plot(data.(names{n})); % or whatever you want to do with this data
end
我可能只是使用循环将数据转储到单元格数组中,以便进一步处理更简单并避免进一步使用动态字段名称或更糟糕的eval
。