如何绘制由 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_ir_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) 但一个应该是正确的。