将两个图与'fplot`

时间:2018-05-19 10:11:26

标签: matlab plot

考虑

x_1 = @(A,t,C_prey)C_prey*exp(t*A)

x_2 = @(B,t,C_prey,C_predator)C_prey*exp(t*(-B*C_predator))

首先:

fplot(x_1([0.01 0.05 0.08],t,1),[0,0.1])

fplot(x_2([0.01 0.05 0.08],t,1,1),[0,0.1])

但是当我试图将它们一起绘制时

fplot(x_1([0.01 0.05 0.08],t,1),x_2([0.01 0.05 0.08],t,1,1))

MATLAB通过Error updating ParameterizedFunctionLine.

提示我

似乎我的语法错误,因为MATLAB文档给出了一个用fplot以相当直接的方式绘制两个函数的示例。

这里有什么问题?

1 个答案:

答案 0 :(得分:1)

您是计划以一般形式绘制2个函数还是以参数形式绘制1个函数?在前一种情况下,像@SardarUsama所说,你必须修复语法使用hold on。如:

x_1 = @(A,t,C_prey)C_prey*exp(t*A);
x_2 = @(B,t,C_prey,C_predator)C_prey*exp(t*(-B*C_predator));

fplot(@(t)x_1([0.01 0.05 0.08],t,1), [0,0.1]); 
hold on; 
fplot(@(t)x_2([0.01 0.05 0.08],t,1,1), [0,0.1]); 
grid on; hold off;

此处,对于A(or B):[0.01 0.05 0.08]中的每个值,您将获得2条曲线(x_1和x_2)。但是,如果您只想以参数形式绘制一个函数,则必须为A的每个值绘制一条曲线。如:

A = [0.01 0.05 0.08];
figure; grid on; hold on;
for i=1:length(A)
    fplot(@(t)x_1(A(i),t,1),@(t)x_2(A(i),t,1,1), [0,0.1]);
end