matlab 循环提取工作区的矩阵名称 用来写脚本里一起作图

img

img


现在把所有矩阵加载到了工作区,想一次性把工作区的矩阵,分别单独与另外一个数据进行对比
现在不知如何调用工作区的矩阵名称

你选中的temp变量是结构体
调用的方法是 temp(序号).字段名
具体字段名 根据你要调用的数据而定

可以使用who命令来获取当前工作区中的所有变量名称,然后再利用循环将其逐个获取。具体代码如下:

% 获取工作区中所有变量的名称
varList = who;

% 循环获取每个变量
for i=1:length(varList)
    % 获取当前变量名称
    currentVarName = varList{i};

    % 判断当前变量是否为矩阵(可以根据具体情况进行修改,例如调用isvector判断是否为向量)
    if ismatrix(eval(currentVarName))
        % 进行对比操作
        % do something
    end
end

需要注意的是,该方法获取的变量名称均为字符串类型,需要使用eval函数将其转化为实际的变量。同时,为了避免获取到不需要的变量(例如函数、脚本等),可以结合一些其他判断条件进行筛选。另外,该方法需要先将所有变量名称获取到,可能会存在一些效率问题。如果需要对变量进行分类或者逐个进行处理,可以考虑使用一些其他的语言元素,例如结构体、嵌套函数等。