matlab中stem_算法工匠线上训练营:MATLAB绘图小试牛刀(20时直播)

dcc1e1653c4832f1e6d0566eb4236401.png 作者 | 蔡老师 仿真秀优秀讲师

首发 | 仿真秀App(ID:fangzhenxiu2018)

74af48011a86197a59734005bd480284.gif 导读:在很多学科都要用到MATLAB,为什么呢? 因为人们很难直观的从一大堆数据中发现它们的含义或者规律,而数据图形能够使视觉感官直接感受到数据的许多内在本质,发现数据的内在联系。 MATLAB可以表达出数据的 二维、三维的图形 。通过图形的线型、色彩、视角等属性的控制,可把数据的内在特征表现出来。所以自然成为很多学科画图的首选工具。 下面我们一起来学习Matlab绘图的基本知识和相关命令。 这么多用处,大家一定要学好哦! d6ce4b18419c7898e0cf24c12213b502.png

MATLAB拥有强大的绘图功能,软件提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能画出所需图形。这类画图函数称为高层绘图函数。

而且MATLAB还提供了直接对图形句柄进行操作的低层绘图操作,这样就可以直接对画好的图形直接操作。这类操作是将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,通过句柄对该图形元素进行操作,而不影响其他部分。是不是很牛啊?

二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。

cdc4dff0dc75b82fe7c9c68cacbb9b8f.png

最基本也是最重要的函数登场了!plot函数!怎么用?有没有实例?我们接着往下学习。

二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。上堂课讲到绘制二维曲线的基本函数为plot,怎么用呢?plot函数是最基本而且应用最为广泛的绘图函数,利用它可以在二维平面上绘制出不同的曲线。怎么个不同法呢?

94b5df8edda8fbcf6e4cfe7f92b6f5db.png c2c56732232c002c770837af5ef6d8fe.png 1da1311c9f49f1426b9fea95e2971aff.png 23e7eac0be04b63b48ef19c543f89f1a.png 24cd115d8cd2e6cf0a5e6b34c1615183.png 1df1972034b22ef6e4583d865a4c4847.png

讲完理论,该来动手演练了。无实践、无工科。

2dec4ec59c9029eba0041cdfefbff5d7.png

这样的程序会出什么结果呢?subplot有什么功能呢?linspace又有什么功能呢?请大家到help里面查找这两个函数的说明文件。至于如何使用?咱们接着学习。

8201ccde0870e0a47faff5d730a1b8a1.png

0e051ecb3557a3093750f88621251ac8.png

同学们是不是得到这样的图形呢?

20d4aa73afeaea8d7b6e88ab949c060a.png dd28f9ad55f66d0db8bbc75ab09b7831.png

a630d9e4462195c7ec7e92b323e76498.png

2ec240f2e1aee8e99e8c22daff239598.png

再给出一个例子。在[0 , 2pi]区间,绘制一条曲线。什么曲线呢?

程序如下:在命令行窗口中输入以下命令 

>> x=0:pi/50:2*pi;>> y=2*exp(-0.5*x).*sin(2*pi*x);>> plot(x,y

程序执行后,打开一个图形窗口,在其中就有程序想要绘制的曲线。注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。很多同学经常不注意整个点,这个点有什么用呢?请同学们去问百度。

一定要知道点乘和乘的差异!!!

作为刚接触MATLAB任何人,还要掌握哪些知识呢?

f54e40fd75563fde7526c19d99e412e0.png

极坐标是属于高中就学习的数学知识,因此有必要在这里讲一下。

9bcad63df37019c714c6ff29665f9108.png

9f3ab6212ebe2ac1d2574f2bf892b609.png

还需要简单的讲一些图像处理的知识。同学们不要担心,都是最基本的知识。
一点都不难!

416f0564d144d927ada78aed1dab1fca.png

fc451c1a4f82104d483eeead86d51d50.png

3356851b96aa5302908017c0d158ee71.png

这些函数必须都要会使用,而且是熟练使用。

还要补充讲解一个函数。semilogx函数

功能:x轴对数图形。对于通信专业的学生而言,这个函数是肯定要用到的。请大家在命令行中写一下下面的代码,看看会出现什么结果?

>>x = 0:.1:10;>>semilogx(x,cos(10.^x))

那bar函数又怎么使用呢?hist函数又怎么使用呢?stem函数又怎么使用呢?好学的同学可以通过matlab的help来找到问题的答案!顺便再提一句:点乘和乘的差别是什么呢?这里又遇见了点乘了哦!

休息一下!

需要同学们课后找资料来学习哦。哪个函数是用来画二维条形直方图呢?哪个函数是用来画二维垂直条形图呢?

stem函数怎么用?以后大家在学习我的《数字信号处理》的时候,可要用到它哦。本课程讲解了部分二维图形的注释命令,那么还有哪些其他命令呢?

比如legend命令。该函数可以在图形上添加文字。该命令对有多种图形对象类型(线条图、条形图等)的窗口中显示出一个文字框。

讲完理论,就来实践。还是那句老话,无实践,无工科。带病坚持讲课,而且还在课后写文章,真的很累,但我更要坚持,做一个好榜样。即使只有几个员能体会个中辛苦。

b58b468ac572edd79270ddd8cd53ec4f.png

19cbfd6884a2d3c1ac79d95ddcee6b94.png

814cc1ed7ce26ad765af7901261022af.png 函数说明:axis([xmin xmax ymin ymax]) 功能:设置当前图形的坐标范围,分别为x轴的最小值和最大值,y轴的最小值和最大值。 3e3ad16aec878f3c5ddcf156e78c8349.png axis off:关闭所有的坐标轴标签、刻度、背景。 axis on:打开所有的坐标轴标签、刻度、背景。 c69a3d11d05afd386391443e86ad39df.png 76f4a949c8b6f0643fdb0d120eeb4286.png

25c1f564723e60cec13ce4c606f00314.png

e65ca49b3e0e2a10724b402172a4f5b9.png title函数功能:给当前轴加上标题。每个axes图形对象可以有一个标题。标题定位于axes的上方正中央。 title('string') 在当前坐标轴上方正中央放置字符串string作为标题。

beb602115ab07815d00c2e609bb5ffc6.png

预先看看电子类、通信类专业的同学们将要画什么图呢?

26101945b9b80375a5d67ad1878d5a45.png 《通信原理》书本理论知识! b1dfb7fc5d6679c36ac63c3f24c3b911.png 数字信号处理 9a9d13510e84bc33aa73d9aa570051d9.png

误码率性能!!!

6cd4a08a99f0daa45e47e294127b1e31.png

功率谱图 75e64622980432ceddf22944950128b5.png 星座图!!!同学们以后会在《通信原理》中看到它。

faec76e6a1b02a925e89ced7fafecb78.png

同学们也会在《通信原理》中看到它(上图)。同学们做好学习的准备了吗?以后这些图可是都要会画的哦!

以上讲解了很多二维图形注释命令,大家一定要多多实践!

bed55ec43cf856b47161f93f432ada81.png

title('string') :在当前坐标轴上方正中央放置字符串string作为标题。

text(x,y,'string'):在图形中指定的位置(x,y)上显示字符串string。 xlabel('string')、ylabel(‘string’) :在当前轴对象中的x、y轴贴标签。 注意:若再次执行xlabel或ylabel命令,则新标签会覆盖旧标签。 grid on:给当前的坐标轴增加分隔线。

grid off :在当前的坐标轴中去掉分隔线。

62dea50bf5a9b7aac6db0853332785ac.png 059e59e7da0de0bde5b40b62530aaf2c.png 28a76ccd9dffd8e7e2df35f0685d75f4.png b064c17ce88b1a11d7e6b309ba691b77.png 4b69b301ac066d398dc706ae4c555512.png

上述内容就是关于如何画二维图形的知识。那如何画三维图形呢?

matlab三维画图主要有三个命令:plot3命令mesh命令surf命令。

本课程只是简单介绍一下plot3函数。

plot3是三维画图的基本函数,绘制的是最为主要的3D曲线图,最主要的调用格式是:plot3(X,Y,Z)

当X,Y,Z为长度同样的向量时,plot3命令将绘得一条分别以向量X,Y,Z为(X,Y,Z)坐标值的曲线。

当X,Y,Z均为m*n的矩阵时,plot3命令将绘得m条曲线,每条曲线均为X,Y,Z列向量为(X,Y,Z)坐标值的曲线。

余下的两个函数怎么使用呢?请同学们自行查找资料学习吧。

温馨提示:通信类学生一定要掌握semilogx函数的用法哦,因为你会一直和它打交道。比如上堂课涉及的误码率曲线图就是这个函数画的哦。

增加2.4  专业领域画图。为同学们以后做好铺垫!

af98142145e13c463d343f78b18381d0.png

85fe5ef616e55cfe77bc03ce00687991.png

scatter可用于描绘散点图。

scatter(X,Y):X和Y是数据向量,以X中数据为横坐标,以Y中数据位纵坐标描绘散点图,点的形状默认使用圈。

例子:

X = [1:100];

Y = X + rand(size(X));

scatter(X, Y)可用于通信仿真中表示信号的星座图,当然也在数据分析的很多地方可以用!!!

429ffa44ac6afe43b43d2a3343cb9993.png 8548d1ac2fdefb922a647e98aa175bd4.png

bar:条形图

bar3 : 3D条形图

barh : 绘制水平条形图

bar3h : 水平3D条形图

histogram: 直方图

histogram2:二元直方图

polarhistogram:极坐标中直方图

area: 填充区二维绘图 pie : 饼图 pie3 : 三维饼图 请同学们在命令行窗口使用这些函数,一定要掌握!只有通过使用才能掌握!反复强调操作的重要性,不知道有没有效果?我也只能做到这样了! 此时, 老师抛出一个问题?matlab能不能制作动图呢?

635e3b01e39f9d9372f12792d38c6817.gif

4061f9ac0fbd6d53208ad75908913837.gif

用一个程序实例来完成画图课程的讲解!

data = normrnd(0,2,1,1000);% 生成随机数(正态分布)%绘制直方图hist(data,30); hold on;%求出概率密度函数参数[mu,sigma]=normfit(data);%绘制概率密度函数[n,x]=hist(data,30);y = normpdf(x,mu,sigma);% 处理数据,使得密度函数和最高点对齐y=y/max(y)*max(n);plot(x,y,'r-');
学过概率统计课程的人都应该能看懂!正态分布的案例实在是太多了。请记住上述程序中涉及到的函数。这个程序就是为了让同学们感受正态分布和平均分布的差异!有图就非常容易理解!

最后,我只想把我的知识通过网络传播给真正想学的人了!

自2020年11月起,蔡老师每周三和周六,免费在仿真秀平台开展《Matlab工程师线上训练营》并且为用户提供即时在线答疑。11月14日晚20-21时,我将继续直播,欢迎大家继续来听。温馨提示:电子类、通信类专业的大学生们必看!适合在电子、通信、生物医学、计算机领域工作的研究人员自学MATLAB! 

MATLAB工程师线上训练营安排 8a8ef32566fe06c517ce14a907bbccb6.png

11月14日今晚20时直播已经讲到了第三课错过前首播的同学,可以在仿真秀官网回看视频,免费的。

作者蔡老师,仿真秀专栏作者

声明:原创文章,首发仿真秀APP(ID:fangzhenxiu2018),部分图片源自网络,如有不当请联系我们,欢迎分享,禁止私自转载,转载请联系我们。

如果您正在学习CAE ,欢迎加入我们的学习型工程师社群,与我们抱团一起学习理论、软件和行业应用。如果您也想在本公众号发布文章,欢迎向我投稿(满意稿酬和尊重署名)哦,更多详情请咨询仿真小助手(在仿真秀公众号对话框回复 小助手 备注 进群/投稿 即可)。

0519b450828890d14ca7add5c78cfd8b.png 点击 阅读原文 ,参加算法工匠Matlab工程师线上训练营。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值