matlab-绘图
绘制二维图形
1、定义函数
2、指定绘制函数的取值范围
3、调用plot(x,y)函数绘制
在指定绘制函数的范围时,需要告诉matlab,我们所希望它使用什么增量来评估函数。
[start:interval:end]
需要将这个范围赋值给变量。
x=[0:0.1:1];
y=cos(x);
plot(x,y)
生成一个标记轴的绘图:
xlabel(’’)与ylabel(’’)函数
plot(x,y),xlabel(‘x’),ylabel(‘y’)
绘制图形以及命名:
t=[0:0.02:1];
f=exp(-2*t)sin(t)
错误使用 *
用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要执行按元素相乘,请使用 '.’。
解决:
fplot(‘function string’,[xstart,xend])
1、用fplot(‘function string’,[xstart,xend])绘制,
function string:函数
xstart和xend定义了显示绘图的范围
fplot(‘exp(-2*t)*sin(t)’,[0,1])
警告: 在以后的版本中,fplot 将不接受字符向量或字符串输入。请改用 fplot(@(t)exp(-2.*t).*sin(t))。
位置:fplot (第 110 行)
fplot(‘exp(-2*t)*sin(t)’,[0,1]),xlabel(‘t’),ylabel(‘f’),title(‘f(t)’)
警告: 在以后的版本中,fplot 将不接受字符向量或字符串输入。请改用 fplot(@(t)exp(-2.*t).*sin(t))。
位置:fplot (第 110 行)
2、当生成由两个或多个函数的乘积组成的函数时,要使用(’.’)来乘以两个矩阵
x=[0:0.1:10];
f=exp(-2*t).*sin(t);
plot(t,f),xlabel(‘t’),ylabel(‘f’),title(‘f(t)’)
grid():增加网格
x=[0:0.1:10];
f=exp(-2*t).*sin(t);
plot(t,f),xlabel(‘t’),ylabel(‘f’),title(‘f(t)’)
x=[-6:0.1:6];
y=tanh(x);
plot(x,y),grid on
grid on 打开网格显示
grid off 关闭网格显示
通过axis equal可以生成两个轴上具有相同比例因子和刻度间距的绘图。
plot(x,y),grid on,axis equal
axis auto:自动设置轴
plot(x,y),grid on,axis auto
因此我们可以使用不同的绘图样式,并选择特定的应用程序所需要的样式。
在一个图中显示多个函数
绘制多个函数,只用调用plot(x,y)命令,多个绘图时,用成对的(x,y)定义绘图中使用的自变量和因变量。
t=[0:0.2:5];
f=exp(-t);
g=exp(-2*t);
plot(t,f,t,g)
plot默认设置是使用直线绘制
solid line‘-’:实线
dash line’–’:虚线
dash-dot line’-.’
dotted line’:’
plot(t,f,’-’,t,g,’–’)
Adding Legends:添加图例
为每个绘制的数据序列创建一个带有描述性标签的图例。如果当前坐标区为空,则图例为空。如果坐标区不存在,此命令将创建坐标区。
hyperbolic trig function:双曲三角函数
x=[0:0.1:2];
y=sinh(x);
z=cosh(x);legend(sinh(x),cosh(x))
错误使用 legend (第 272 行)
参数无效。有关详细信息,请键入 ‘help legend’。plot(x,y,x,z,’-.’),xlabel(‘x’),ylabel(‘y/z’),legend(‘sinh(x)’,‘cosh(x)’)
为了将图例移动到更加有利的位置上,以便进行打印或打印显示,只需要将鼠标指针悬停在图例上并将其拖动到指定位置即可。
修改曲线颜色:
x=[-5:0.01:5];
y=sinh(x);
z=cosh(x);
plot(x,y,‘r’,x,z,‘b’)
plot(x,y,‘r’,x,z,‘b–’)
color | specifier |
---|---|
white | w |
black | k |
blue | b |
red | r |
cyan青色 | c |
green | g |
magenta洋红色 | m |
yellow | y |
设置轴刻度:
axis([xmin xmax ymin ymax])
x=[0:0.01:5];
y=sin(2*x+3);
plot(x,y), axis([0 5 -1 1])
x=[0:0.01:5];
y=exp(-3*x/2).sin(5x+3);
plot(x,y)
plot(x,y),axis([0 5 -1 0.5])
y=sin(5*x)^2
错误使用 ^ (第 51 行)
用于对矩阵求幂的维度不正确。请检查并确保矩阵为方阵并且幂为标量。要执行按元素矩阵求幂,请使用 ‘.^’。
应该要使用数组幂的表示法:
A.^B
=
=
=A^B
y=sin(5*x).^2;
plot(x,y)
假设我门指向查看一组有限x值得范围曲线:plot(x,y),axis([0 1 0 1])
subplot:子图
是出现在同一图形中的绘图数组中的一个成员
subplot(m,n,p):生成m行n列的绘图数组
p指我们生成的特定的曲线放置的位置
使用subplot命令创建的每个绘图都可以有自己的特征
x=[0:0.01:5];
y=exp(-2*x).sin(20x);
subplot(1,2,1)
plot(x,y),xlabel(‘x’),ylabel(‘y1’)
y2=exp(-1.2*x).sin(20x);
subplot(1,2,2)
plot(x,y2),xlabel(‘x’),ylabel(‘y2’)
总结:定义函数,调用子图,告诉matlab将其放在那个位置(p),之后调用plot来绘制曲线。
overlay:覆盖
hold on 用于叠加绘图:overlaying plots
linspace 可以用来生成一组x数据
x=linspace(a,b):从a到b生成一条由100个均匀间隔点组成的直线或向量
x=linspace(a,b,n):从a到b生成一条由n个均匀间隔点组成的直线或向量
x=linspace(0,2*pi);
y=cos(x);plot(x,y)
hold on
y=sin(x);
plot(x,y)
**text(X,Y,‘string’)😗*在坐标为(X,Y)的位置添加描述‘string’.
**gtext(‘string’)😗*通过鼠标自行键入’stirng’描述