Matlab组变量的名称相似

时间:2015-10-26 16:52:11

标签: matlab

我想要绘制一个变量名的单元格数组。例如,

var = {...
       'Xp_1';
       'Xp_2';
       'Xp_3';
       'PRES_1';
       'PRES_2';
       'PRES_3';
       'FLOW_1';
       'FLOW_2';
       'FLOW_3'};

现在,我想按照他们的名字对它们进行分组,即所有Xps,PRES和FLOW,并在单独的图上叠加它们;因此,三个数字的总数:一个用于Xps,一个用于PRES,一个用于FLOW。

我通过比较所有变量的前两个或三个字符来集思广益。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以extract a substring并通过逻辑操作比较结果,也可以使用this method

figure(1); hold all; figure(2); hold all; figure(3); hold all;
for i = 1:length(var)
 if strncmpi('xp',var(i),2) // compare the first 2 characters
      figure(1)
       plot(eval(var(i))) // eval calls the variable by the name in var(i)
 elseif strncmpi('pr',var(i),2)
      figure(2)
       plot(eval(var(i)))
 elseif strncmpi('fl',var(i),2)
         figure(3)
       plot(eval(var(i)))
 else
  disp('No case for variable name');
end