我需要绘制大量数据,并且感谢:
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定义得很好。
答案 0 :(得分:1)
由于名为legend
的变量与内置MATLAB函数legend()
之间存在冲突,因此发生错误。将变量重命名为例如leg1
然后它应该按预期工作。