在Matlab中绘制函数

时间:2015-10-07 20:25:28

标签: arrays matlab function plot matlab-figure

我有兴趣在Matlab中绘制以下函数,但没有成功。

enter image description here

我无法策划积分。

 x = -1:0.1:3;
 if (x<=1)
     y = x*x-x+1
     plot(x,y)
 else
     y = 2*x+3
     plot(x,y)
 end

1 个答案:

答案 0 :(得分:3)

您定义的if语句采用整个数组的条件,这意味着所有条目应遵循该语句。由于只有前21个符合所提出的条件,if语句会转到else并绘制一条直线。

第一行的等式是不正确的,因为x*x会导致错误,因为MATLAB假设这是一个矩阵乘法,并且大小不正确。您没有看到此错误的原因是if语句,因为如上所述,从未到达此行。你应该使用点乘法来改变那个等式,这就像元素一样,而不是数组/矩阵式。

第二行的等式是正确的。

如果你的if/else陈述是正确的,那么你的第一张图会被第二张图覆盖,因为你没有指定hold on切换到数字。

作为一个注释,我在每个语句后也使用了分号;,这阻止了它将行的输出打印到控制台。

x1 = [-1:0.01:1].';
x2 = [1:0.01:3].';
y1 = x1.^2-x1+1;
y2 = 2*x2+3;

figure;
hold on
plot(x1,y1)
plot(x2,y2)

plot