失败的节目传奇

时间:2017-11-20 11:32:03

标签: matlab loops plot

我需要绘制大量数据,并且感谢:

x=matlab.lang.makeValidName(strcat(...)); 
assignin('base',x,I);

对于每个进程循环,我计算I,我将I(向量)的值赋给变量名I_Pnum1_Bnum2,其中num1是值P和num2的值是B.所以,最后我有很多I的用于:

num1=-4:-1:-14;
num2=[0 5 10 20:20:120 150 170 200 220];

这就是为什么,对于P的每个值,我想绘制(在同一图表上)不同B的所有I

num1=-4:-1:-14;
num2=[0 5 10 20:20:120 150 170 200 220];
for i=1:length(num1)
    legend=[];
   figure(i)
   for j=1:length(num2)
       Y=matlab.lang.makeValidName(strcat('I_p',num2str(abs(num1(i))),'_B',num2str(double(num2(j)))));
       plot(V,eval(Y),'linewidth',2)
       hold on
       leg=strcat("B= ",num2str(b(j)));
       legend=[legend leg];
   end
   title(strcat("Caractéristiques I(V) @",num2str(p(i)),"dBm"))
   legend(legend);
end
clc;

问题:我明白了

  

函数'subsindex'未定义为'string'类的值。

这是由于线条图例(legende),我不明白为什么,因为矢量legende定义得很好。

1 个答案:

答案 0 :(得分:1)

由于名为legend的变量与内置MATLAB函数legend()之间存在冲突,因此发生错误。将变量重命名为例如leg1然后它应该按预期工作。