感慨一下:以前用C++做个图很麻烦,看来各有所长!
一、 绘制单条曲线,函数的调用的格式为
plot(x,y,'s')
其中x表示横坐标向量,y表示纵坐标向量,s为选项字符串,用于控制线型与颜色
例如绘制正弦曲线y=sin(x)
x=0:pi/50:4*pi;
y=sin(x)
plot(x,y,'-')
运行效果图
如果绘制多条曲线,可以使用plot(x1,y1,'s',x2,y2,'s',x3,y3,'s'...)形式,其功能是分别以向量x1,x2,x3为X轴,分别以y1,y2,y3为Y轴,在同一幅图中绘制多条曲线.绘制曲线时,要求向量xk,yk维数相等(k=1,2,3...)
例如:在[0,2*pi]内绘制正弦曲线y=sin(x)与余弦曲线y=cos(x)
x=0:pi/50:2*pi;
y1=sin(x)
y2=cos(x)
plot(x,y1,'k',x,y2,'b-')
运行效果图
(注:b表示蓝色,k表示黑色,-表示线性
命令 | 意义 |
title | 添加图形标题 |
xlabel | 添加x轴的坐标标注 |
ylabel | 添加y轴的坐标标注 |
text | 添加数据点的标注 |
legend | 添加图例 |
axis | 对坐标轴的范围的控制 |
grid | 对图形的网格的控制 |
hold | 图形窗口保持功能 |
例如:
x=0:pi/50:2*pi;
y1=sin(x);
y2=cos(x);
%在同一幅图中绘制两条曲线
plot(x,y1,'k:',x,y2,'b-');
%限制坐标轴的范围
axis([0,2*pi,-1,1]);
%运行图的标题
title('正弦曲线与余弦曲线');
%x轴的标记
xlabel('x轴')
%y轴的标记
ylabel('y轴')
%在某一个点做标记
text(3.1,0.1,'sin(x)')
%同样的在某一个点做标记
text(1.3,0.4,'cos(x)')
%图示
legend('sin(x)','cos(x)')
运行效果图
二、子图
使用 函数:subplot(m,n,p)
该命令将当前窗口分为m*n个绘图区,即每行n个,共m行
例如:
%划分区域
subplot(2,2,1)
%定义变量
x=-2:0.01:2;
%x与y关系
y=x.*x;
%绘图
plot(x,y,'k');
%图的标题
title('y=x^2');
grid on
subplot(2,2,2)
x=0:0.01:4;
z1=sqrt(x);
z2=-z1;
plot(x,z1,'k',x,z2,'k')
title('x=y2');
axis on
grid on
subplot(2,2,3);
x1=-5:0.01:-2;
u1=3*sqrt(x1.*x1/4-1);
plot(x1,u1,'k',x1,-u1,'k');
hold on
x2=2:0.01:5;
u2=3*sqrt(x2.*x2/4-1);
plot(x2,u2,'k',x2,-u2,'k');
hold off
grid on
title('x^2/4-y^2/9=1');
axis tight;
subplot(2,2,4);
x=-4:0.01:4;
w1=3*sqrt(x.*x/4+1);
plot(x,w1,'k',x,-w1,'k');
axis tight
title('x^2/4-y^2/9=-1');
grid on
运行结果:
三、符号 画图
MATLAB系统提供了ezplot和fplot 两个函数画图,以及实现显函数、隐函数以及参数方程.调用格式
ezplot('f',[xmin,xmax]):表示绘制f在xmin<x<xmax内的图形函数.当区间默认时,区间默认为[-2*pi,2*pi];
ezplot('f',[xmin,xmax,ymin,ymax]);表示函数f在xmin<x<xmax与ymin<y<ymax区域的图形,当[xmin,xmax,ymin,ymax]"项默认时,默认为x与y 范围都为[-2*pi,2*pi];
ezplot(x,y,[tmin,tmax]):表示绘制的参数方程为x=x(t) 与y=y(t)在区间tmin<t<tmax内的图形
fplot('fun',[xmin,xmax]):表示绘制的字符串fun所制定的函数xmin<x<xmax内的图形
例如:
ezplot('sin(x)',[-4*pi,4*pi]);
运行效果:
ezplot('sin(x)',[-4*pi,4*pi]);ezplot('x^2/4-y^2/9=1',[-5,5,-3,3]);
运行效果:
ezplot('x^2+x*exp(y^2)-y*sin(x)+y*exp(x^2)',[-3,3,-3,3])
运行效果图
fplot('[sin(x),cos(x)]',[-2*pi,2*pi]);
title('sin(x)与cos(x)')
运行效果: