如何绘制由 i 索引的一系列函数的曲线
How do I plot curves of a sequence of functions indexed by i
我试图在同一图中绘制十个函数序列 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
是一个连续变量。但是我如何在上面的代码中构建单个变量 t
的十个函数 y_i
并将它们的图形绘制在同一个图中,因此它将由十个函数的图形组成。我怎样才能实现它?
谢谢
首先对您的代码进行一些小的修改。 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)
但一个应该是正确的。
我试图在同一图中绘制十个函数序列 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
是一个连续变量。但是我如何在上面的代码中构建单个变量 t
的十个函数 y_i
并将它们的图形绘制在同一个图中,因此它将由十个函数的图形组成。我怎样才能实现它?
谢谢
首先对您的代码进行一些小的修改。 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)
但一个应该是正确的。