当前位置:   article > 正文

Matlab学习笔记(三)最全面的绘制函数图像_matlab绘制函数图像

matlab绘制函数图像

默认安装好了matlab,我使用的版本是2023,版本不同,个别函数的使用会有出入,报错请自行百度解决。
强烈建议边看边打


前言

这节我们介绍很常用的matlab可视化功能,Matlab软件提供了强大的可视化功能,可以根据给定的曲线上的坐标来绘制曲线图形,也可以根据已知的函数及自变量来绘制曲线图形,也可以只给定自变量的取值范围来绘制曲线。
这几个主要函数的用法大同小异,很好掌握
要讲解的如下:

  • plot
  • hold on/off
  • fplot
  • fimplicit
  • ezplot
  • xlabel
  • title
  • legend
  • axis
  • grid on
  • 分区显示

一、plot

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') ;%绘图
  • 1
  • 2
  • 3

在这里插入图片描述

这里理解一下绘图的本质,它是先把你的给定的点确定好,再用直线连接挨着的点,所以你的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)
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述


二、hold on/off

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;
%运行结果
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

三、fplot

plot不同于plot,主要用来根据函数表达式和自变量所属区间来直接绘制函数曲线,不需要给出像plot需要给出的自变量和因变量的数组,因此当函数表达式已知的情况,使用fplot绘制函数曲线相对简单一些。
主要绘制显函数和参数方程
一共有两种形式:
(最后会放出两端代码便于具体体会)
第一种

1fplot( @(var) f(var), xinterval, s )
  • 1

参数:

  • var是你的自变量的名称
  • f:你想要的函数表达式
  • xinterval:自变量区间,当然不一定非是x,也可以是a,b,c…,对应写成ainterval,binterval
  • s:与plot一样是属性,自己百度吧

第二种

2fplot( @(t)fx(t), @(t) fy(t), tinterval, s )
  • 1

这个是为了绘制参数方程,具体的实际意义,帮我们绘制二元方程的图像
参数:

  • var是你的自变量的名称
  • fx与fy:你想要的两个函数表达式
  • tinterval:自变量区间,当然不一定非是t,也可以是a,b,c…,对应写成ainterval,binterval
  • s:与plot一样是属性,自己百度吧

代码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' )
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
代码2如下:

fplot( @(t)sin(t), @(t)cos(t),[ -pi, pi ] ) %实线单位圆
hold on
  • 1
  • 2

(这个就是参数方程了)
在这里插入图片描述


四、fimplicit

上面的fplot是绘制显函数和参数方程,这个fimplicit是绘制隐函数的
语法:

fimplicit(@(x,y) f(x,y),xinterval,s)
  • 1

参数:

  • f(x,y):你想要的函数表达式,必须隐式
  • xinterval:自变量区间,当然不一定非是x,也可以是a,b,c…,对应写成ainterval,binterval
  • s:与plot一样是属性,自己百度吧
    代码示例:
fp = fimplicit(@(x,y) y.*sin(x) + x.*cos(y) - 1)
  • 1

五、ezplot

新版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 )//参数方程
  • 1
  • 2
  • 3

参数不再介绍
强调一下隐函数的xyinterval,xyinterval 的格式是[ xmin, xmax, ymin, ymax ]。

%示例代码
ezplot( 'sin(x)', [ 0, 2 * pi ] );
hold on
ezplot( 'cos(x)', [ 0, 2 * pi ] );
  • 1
  • 2
  • 3
  • 4

(pi就是Π的意思)


六、xlabel

画函数的时候,为了方便阅读,需要给xyz轴一定的标签,方便读者了解,故用到xlabel函数
xlabel是给x轴添加标签 ylabel是给y轴添加标签
具体语法(以xlabel为例)

xlabel('这里是x轴’)
  • 1

示例代码如下

fplot( @(t)sin(t), @(t)cos(t),[ -pi, pi ] ) %实线单位圆
xlabel('x轴');
ylabel('单位圆');
hold on
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

之前介绍ezplot函数,说过这个函数会补出所以标签,但是它的优先级不如xlabel,你可以后续使用xlabel,ylabel,title对标签进行修改


七、title

title函数的作用是添加标题,语法与xlabel类似的
title('你想要什么标题?')

plot((1:10).^2)
title(date)
  • 1
  • 2

这里有个彩蛋,当你输入data不加单引号的时候
会返回当日日期
在这里插入图片描述
如果想让标题中包含变量的值,可以通过

plot((1:10).^2)
f = 70;
c = (f-32)/1.8;
title(['Temperature is ',num2str(c),' C'])
  • 1
  • 2
  • 3
  • 4

如果不想要黑色的标题,也可以对标题改颜色,代码如下

plot((1:10).^2)
title('Case number # 3','Color', 'm')
  • 1
  • 2

最后再分享一个多行标题

title('这是第一行标题','这是第二行标题''以此类推。。。。'
  • 1

其实title还有很多别的用法,但是不是很常用,如有需要的时候,现学现用吧


八、legend

当多条函数在一个图里的时候,你总要让别人区分开吧,所以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)')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

它会按照你画的顺序,依次标标签,同时默认图例出现在东北角,东北角是最舒服的,你也可以进行位置修改。(自行查找)
可以参考Matlab中legend函数使用介绍的十分详细

还是本着常用哪些,就好好学哪些,所以在这里我并没有介绍全,当遇到特殊要求时,现学!!!

九、axis

函数作用,对坐标轴进行修改!!
语法

  • axis( [xmin xmax ymin ymax] ) 设置当前二维图形对象的 x 轴 和 y 轴的取值范围。向量参数[xmin xmax ymin - ymax] 中的元素分别表示 x 轴最小值、x 轴最大值、y 轴最小值和 y 轴最大值。
  • axis off 去掉坐标轴
  • axis on 显示坐标轴
  • axis square 坐标轴呈方形
  • axis equal 设置屏幕高宽比,使得每个坐标轴的具有均匀的刻度间隔
 x=0:.025:pi/2;
plot(x,tan(x),'-ro')    % 绘制正切曲线
  • 1
  • 2

再加上

axis([0 pi/2 0 5])     % 改变坐标轴取值范围
  • 1

感受一下变化


十、grid on/off

grid on函数的作用就是显示出网格
grid off的作用就是关闭网格


十一、分区显示

语法

nexttile
ax = nexttile(___)
  • 1
  • 2

nexttile 创建一个坐标区对象,再将其放入当前图窗中的分块图布局的下一个空图块中。如果当前图窗中没有布局,则 nexttile 会创建一个新布局并使用 ‘flow’ 图块排列进行配置。生成的坐标区对象是当前坐标区,因此下一个绘图命令可以在其中进行绘制。

ax = nexttile(___) 返回坐标区对象。使用 ax 对坐标区设置属性。也可以将 ax 作为输入参数传递给对坐标区对象执行操作的其他图形函数。例如,可以调用 colormap 或 colororder 函数来更改坐标区的颜色方案。

强烈建议使用ax = nexttile
分区的意义是为了让函数更加清晰,那如果我们分区后该怎么指定区域绘制图像怎么指定区域修改
所有前面介绍的函数第一个参数,传入你指定的区域,例如ax
例如
plot(ax,function,variables,s)


总结

这里全面的介绍了绘制图像的方法,也介绍了例如title,legend等等辅助功能,其实matlab在画函数方面有很多函数供大家使用,还是在需要的时候,推荐现学

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号