我试图在同一图中的十个函数f_i(t)
序列的区间[60,110]中绘制图形,其定义将从下面的代码中清楚:
figure
i=1;
while i<=10;
P_i=abs(sin(i));
r_i=0.005*abs(cos(i.^2));
y=@(i,t)P_i*exp(r_i*t)/(1+P_i*(exp(r_i*t)-1));
% disp([(y(i,67));(y(i,68));(y(i,69))]');
s=linspace(60,110,51);
i=i+1;
continue;
end;
我运行了一段代码并且它有效。如您所见,我可以创建一个单独的函数y(i,t)
,其中i
是一个整数1<=i<=10
,而t
是一个连续变量。但是如何在上面的代码中构造单个变量y_i
的十个函数t
并在同一图中绘制它们的图形,因此它将由十个函数的图组合在一起。我怎样才能实现它?
由于
答案 0 :(得分:2)
首先对您的代码进行一些小修改。 P_i
和r_i
也是函数,因此将它们定义为函数。这样您只需要定义一次函数。除了像你一样使用循环,它很容易导致错误。 i
是想象单位,你没有初始化它。请改用for
循环,避免使用i
P_i=@(i)abs(sin(i));
r_i=@(i)0.005*abs(cos(i.^2));
k=1:10;
t=60:101;
y=@(i,t)P_i(i)*exp(r_i(i)*t)/(1+P_i(i)*(exp(r_i(i)*t)-1));
要绘制具有所有值的矩阵:
M=nan(numel(ik),numel(it));
for ik=1:numel(k)
for it=1:numel(t)
M(ik,it)=y(k(kx),t(it));
end
end
最后绘制它。如果你想要plot(k,M)
或plot(t,M)
,我真的不明白,但是一个应该是正确的。