繁体   English   中英

在Matlab中绘制函数

[英]Plotting a function in Matlab

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

在此处输入图片说明

我无法绘制点。

 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

您定义的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)

情节

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM