赞
踩
默认安装好了matlab,我使用的版本是2023,版本不同,个别函数的使用会有出入,报错请自行百度解决。
强烈建议边看边打
这节我们介绍很常用的matlab可视化功能,Matlab软件提供了强大的可视化功能,可以根据给定的曲线上的坐标来绘制曲线图形,也可以根据已知的函数及自变量来绘制曲线图形,也可以只给定自变量的取值范围来绘制曲线。
这几个主要函数的用法大同小异,很好掌握
要讲解的如下:
plot的语法:plot(x,y,z)
第一个参数x:横坐标的数组
第二个参数y:纵坐标的数组
第三个参数z:图元属性
这里解释一下什么是图元属性?
我们可以理解成你要绘制的图像的类型,主要是线的颜色,线型等
这里不做展示了,用到的时候随便一搜,有一堆,也没必要记,用着用着就记住了
这里强调:并不一定要把3个参数输入齐全,可以缺省,当缺省时,你也没必要输入成plot(,y,)
,这种形式,直接省略就行,要不会报错的
注意:当横坐标缺省时,系统会自动指定横坐标位单位坐标,
当缺省s的时候,就是取点连线,即相邻的两个坐标点之间用直线连接,整体图形就是一条折线;
代码如下
x = [ 1 : 9 ]; %横坐标
y = [1 2 3 4 6 4 3 4 5]; %纵坐标
plot( x ,y,'b') ;%绘图
这里理解一下绘图的本质,它是先把你的给定的点确定好,再用直线连接挨着的点,所以你的x数组里面的值的个数和y数组里面的值的个数必须对等,否则报错
你甚至可以一次绘制多条
x = 0:pi/100:2*pi;
y = sin(x);
y2 = sin(x-.25);
y3 = sin(x-.5);
plot(x,y,x,y2,x,y3)
hold on是使当前轴及图形保持而不被刷新,准备接受此后将绘制,即“保留住”前图的坐标和图形,将新绘制的图形共同呈现在该图上,并自动调整坐标轴的范围;
hold off是使当前轴及图形不在具备被刷新的性质,绘制新图,取消原图。即“不保留”原有图形。
自己将下面代码cv到matlab,改动一下第一个hold on变成hold off,逐步调试,自己理解一下
%示例代码(1)
x = [ 1 : 9 ]; %横坐标
y = [1 2 3 4 6 4 3 4 5]; %纵坐标1
z = [1 2 5 7 9 5 4 2 8]; %纵坐标2
plot(x,y,'b');%绘图
hold on;
plot(x,z,'r');
hold on;
%运行结果
plot不同于plot,主要用来根据函数表达式和自变量所属区间来直接绘制函数曲线,不需要给出像plot需要给出的自变量和因变量的数组,因此当函数表达式已知的情况,使用fplot绘制函数曲线相对简单一些。
主要绘制显函数和参数方程
一共有两种形式:
(最后会放出两端代码便于具体体会)
第一种
1、fplot( @(var) f(var), xinterval, s )
参数:
第二种
2、fplot( @(t)fx(t), @(t) fy(t), tinterval, s )
这个是为了绘制参数方程,具体的实际意义,帮我们绘制二元方程的图像
参数:
代码1如下:
fplot( @(x)(7-x).^2/4,[1, 5 ], 'r' )
hold on
fplot( @(x)x-4,[5, 10 ], 'g' )
fplot( @(x)16-x,[10, 15 ], 'r' )
fplot( @(x)(x-13).^2/4,[15, 19 ], 'b' )
代码2如下:
fplot( @(t)sin(t), @(t)cos(t),[ -pi, pi ] ) %实线单位圆
hold on
(这个就是参数方程了)
上面的fplot是绘制显函数和参数方程,这个fimplicit是绘制隐函数的
语法:
fimplicit(@(x,y) f(x,y),xinterval,s)
参数:
fp = fimplicit(@(x,y) y.*sin(x) + x.*cos(y) - 1)
新版matlab不建议使用ezplot,但我个人觉得ezplot很好
ezplot涵盖了的fplot和fimplicit功能,既可以绘制显函数,也可以绘制隐函数和参数方程。 并且ezplot会自动的添加横纵坐标!!!
但是使用ezplot绘图设定图元的颜色等属性时,不如fplot和fimplicit方便,需要使用set还设定。
语法:
ezplot( @(varible)function, interval )//显函数
ezplot( @(varibles)function, xyinterval )//隐函数
ezplot( @(variable)xfun, @(variable)yfun, tinterval )//参数方程
参数不再介绍
强调一下隐函数的xyinterval,xyinterval 的格式是[ xmin, xmax, ymin, ymax ]。
%示例代码
ezplot( 'sin(x)', [ 0, 2 * pi ] );
hold on
ezplot( 'cos(x)', [ 0, 2 * pi ] );
(pi就是Π的意思)
画函数的时候,为了方便阅读,需要给xyz轴一定的标签,方便读者了解,故用到xlabel函数
xlabel
是给x轴添加标签 ylabel
是给y轴添加标签
具体语法(以xlabel为例)
xlabel('这里是x轴’)
示例代码如下
fplot( @(t)sin(t), @(t)cos(t),[ -pi, pi ] ) %实线单位圆
xlabel('x轴');
ylabel('单位圆');
hold on
之前介绍ezplot函数,说过这个函数会补出所以标签,但是它的优先级不如xlabel,你可以后续使用xlabel,ylabel,title对标签进行修改
title函数的作用是添加标题,语法与xlabel类似的
title('你想要什么标题?')
plot((1:10).^2)
title(date)
这里有个彩蛋,当你输入data不加单引号的时候
会返回当日日期
如果想让标题中包含变量的值,可以通过
plot((1:10).^2)
f = 70;
c = (f-32)/1.8;
title(['Temperature is ',num2str(c),' C'])
如果不想要黑色的标题,也可以对标题改颜色,代码如下
plot((1:10).^2)
title('Case number # 3','Color', 'm')
最后再分享一个多行标题
title('这是第一行标题','这是第二行标题','以此类推。。。。')
其实title还有很多别的用法,但是不是很常用,如有需要的时候,现学现用吧
当多条函数在一个图里的时候,你总要让别人区分开吧,所以legend派上用场了,legend添加图例
x = 0:pi/100:2*pi;
y = sin(x);
y2 = sin(x-.25);
y3 = sin(x-.5);
plot(x,y,x,y2,x,y3)
legend('sin(x)','sin(x-.25)','sin(x-.5)')
它会按照你画的顺序,依次标标签,同时默认图例出现在东北角,东北角是最舒服的,你也可以进行位置修改。(自行查找)
可以参考Matlab中legend函数使用介绍的十分详细
还是本着常用哪些,就好好学哪些,所以在这里我并没有介绍全,当遇到特殊要求时,现学!!!
函数作用,对坐标轴进行修改!!
语法:
x=0:.025:pi/2;
plot(x,tan(x),'-ro') % 绘制正切曲线
再加上
axis([0 pi/2 0 5]) % 改变坐标轴取值范围
感受一下变化
grid on函数的作用就是显示出网格
grid off的作用就是关闭网格
语法
nexttile
ax = nexttile(___)
nexttile 创建一个坐标区对象,再将其放入当前图窗中的分块图布局的下一个空图块中。如果当前图窗中没有布局,则 nexttile 会创建一个新布局并使用 ‘flow’ 图块排列进行配置。生成的坐标区对象是当前坐标区,因此下一个绘图命令可以在其中进行绘制。
ax = nexttile(___) 返回坐标区对象。使用 ax 对坐标区设置属性。也可以将 ax 作为输入参数传递给对坐标区对象执行操作的其他图形函数。例如,可以调用 colormap 或 colororder 函数来更改坐标区的颜色方案。
强烈建议使用ax = nexttile
分区的意义是为了让函数更加清晰,那如果我们分区后该怎么指定区域绘制图像?怎么指定区域修改?
在所有前面介绍的函数的第一个参数,传入你指定的区域,例如ax
例如
plot(ax,function,variables,s)
这里全面的介绍了绘制图像的方法,也介绍了例如title,legend等等辅助功能,其实matlab在画函数方面有很多函数供大家使用,还是在需要的时候,推荐现学
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。