MATLAB plot函数详解
matlab中plot是最简单的一个画二维图的工具;不过其用法也是很多的,比如线性方面;
plot画图的颜色线型
y 黄色 · 点线
m 粉红 ○ 圈线
c 亮蓝 × ×线
r 大红 + +字线
g 绿色 - 实线
b 蓝色 * 星形线
w 白色 : 虚线
k 黑色 -.
-- 点划线
matlab6.1线形:
[ + | o | * | . | x | square | diamond | v | ^ | > | < | pentagram | hexagram ]
square 正方形
diamond 菱形
pentagram 五角星
hexagram 六角星
plot一些用法:
grid 打开网格线 -- 虚线
hold on 命令用于在已画好的图形上添加新的图形
1 x=0:0.001:10; % 0到10的1000个点(每隔0.001画一个点)的x座标
y=sin(x); % 对应的y座标
plot(x,y); % 绘图
注:matlab画图实际上就是描点连线,因此如果点取得不密,画出来就成了折线图,请试验之
2 Y=sin(10*x);
plot(x,y,‘r:‘,x,Y,‘b‘) % 同时画两个函数
3 若要改变颜色,在座标对后面加上相关字串即可:
x=0:0.01:10;
plot(x,sin(x),‘r‘)
4 若要同时改变颜色及图线型态(Line style),也是在坐标对后面加上相关字串即可:
plot(x,sin(x),‘r*‘)
5 用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围
axis([0,6,-1.5,1])
6 MATLAB也可对图形加上各种注解与处理:(见上表)
xlabel(‘x轴‘); % x轴注解
ylabel(‘y轴‘); % y轴注解
title(‘余弦函数‘); % 图形标题
legend(‘y = cos(x)‘); % 图形注解
gtext(‘y = cos(x)‘); % 图形注解 ,用鼠标定位注解位置
grid on; % 显示格线
7画椭圆
a = [0:pi/50:2*pi]‘; %角度
X = cos(a)*3; %参数方程
Y = sin(a)*2;
plot(X,Y);
xlabel(‘x‘), ylabel(‘y‘);
title(‘椭圆‘)
8 绘制函数 在0 ≤ x ≤ 1时的曲线。
x=0:0.1:1
y=x.*exp(-x) %为什么用点运算?若不用会怎样
plot(x,y),xlabel(‘x‘),ylabel(‘y‘),title(‘y=x*exp(-x)‘)
9 画出衰减振荡曲线 与它的包络线 及 。t 的取值范围是[0, 4π] 。
t=0:pi/50:4*pi;
y0=exp(-t/3);
y=exp(-t/3).*sin(3*t);
plot(t,y,‘-r‘,t,y0,‘:b‘,t,-y0,‘:b‘) % -r表示红色实线,:b表示蓝色点线,看上表
grid
10 在同一个画面上建立几个坐标系, 用subplot(m,n,p)命令;把一个画面分成m×n个图形区域, p代表当前的区域号,在每个区域中分别画一个图,如
x=linspace(0,2*pi,30); y=sin(x); z=cos(x);
u=2*sin(x).*cos(x); v=sin(x)./cos(x);
subplot(2,2,1),plot(x,y),axis([0 2*pi -1 1]),title(‘sin(x)‘)
subplot(2,2,2),plot(x,z),axis([0 2*pi -1 1]),title(‘cos(x)‘)
subplot(2,2,3),plot(x,u),axis([0 2*pi -1 1]),title(‘2sin(x)cos(x)‘)
subplot(2,2,4),plot(x,v),axis([0 2*pi -20 20]),title(‘sin(x)/cos(x)‘)
我的实例:
代码如下:
clear all;clc; x = 0:1:1023; y = 0:1:1023; for i=1:1024 if( x(i) <= 100 ) y(i) = -0.0085 * x(i)^2 + 1.7 * x(i); y(i) = fix(y(i)); end if( 100 < x(i) && x(i) <= 924 ) y(i) = 0.103*x(i) + 75; y(i) = fix(y(i)); end if( 924 < x(i) && x(i) <= 1024 ) y(i) = 0.008673*x(i)^2 - 16.027*x(i) + 7574.799; y(i) = fix(y(i)); end end plot(x,y,'r','LineWidth', 3); grid on; axis([0 1024 0 256]); hold on; y = 0.25*x; plot(x,y,'k','LineWidth', 3); axis([0 1024 0 256]);
效果: