算法工匠線上訓練營:MATLAB繪圖小試牛刀(20時直播)

2021-02-14 仿真秀App

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

導讀:在很多學科都要用到MATLAB,為什麼呢?因為人們很難直觀的從一大堆數據中發現它們的含義或者規律,而數據圖形能夠使視覺感官直接感受到數據的許多內在本質,發現數據的內在聯繫。MATLAB可以表達出數據的二維、三維的圖形。通過圖形的線型、色彩、視角等屬性的控制,可把數據的內在特徵表現出來。所以自然成為很多學科畫圖的首選工具。下面我們一起來學習Matlab繪圖的基本知識和相關命令。

MATLAB擁有強大的繪圖功能,軟體提供了一系列的繪圖函數,用戶不需要過多的考慮繪圖的細節,只需要給出一些基本參數就能畫出所需圖形。這類畫圖函數稱為高層繪圖函數。

而且MATLAB還提供了直接對圖形句柄進行操作的低層繪圖操作,這樣就可以直接對畫好的圖形直接操作。這類操作是將圖形的每個圖形元素(如坐標軸、曲線、文字等)看做一個獨立的對象,系統給每個對象分配一個句柄,通過句柄對該圖形元素進行操作,而不影響其他部分。是不是很牛啊?

二維圖形是將平面坐標上的數據點連接起來的平面圖形。可以採用不同的坐標系,如直角坐標、對數坐標、極坐標等。二維圖形的繪製是其他繪圖操作的基礎。

最基本也是最重要的函數登場了!plot函數!怎麼用?有沒有實例?我們接著往下學習。

二維圖形是將平面坐標上的數據點連接起來的平面圖形。可以採用不同的坐標系,如直角坐標、對數坐標、極坐標等。二維圖形的繪製是其他繪圖操作的基礎。上堂課講到繪製二維曲線的基本函數為plot,怎麼用呢?plot函數是最基本而且應用最為廣泛的繪圖函數,利用它可以在二維平面上繪製出不同的曲線。怎麼個不同法呢?

講完理論,該來動手演練了。無實踐、無工科。

這樣的程序會出什麼結果呢?subplot有什麼功能呢?linspace又有什麼功能呢?請大家到help裡面查找這兩個函數的說明文件。至於如何使用?咱們接著學習。

同學們是不是得到這樣的圖形呢?

再給出一個例子。在[0 , 2pi]區間,繪製一條曲線。什麼曲線呢?

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

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

程序執行後,打開一個圖形窗口,在其中就有程序想要繪製的曲線。注意:指數函數和正弦函數之間要用點乘運算,因為二者是向量。很多同學經常不注意整個點,這個點有什麼用呢?請同學們去問百度。

一定要知道點乘和乘的差異!!!

作為剛接觸MATLAB任何人,還要掌握哪些知識呢?

極坐標是屬於高中就學習的數學知識,因此有必要在這裡講一下。

還需要簡單的講一些圖像處理的知識。同學們不要擔心,都是最基本的知識。
一點都不難!

這些函數必須都要會使用,而且是熟練使用。

還要補充講解一個函數。semilogx函數

功能:x軸對數圖形。對於通信專業的學生而言,這個函數是肯定要用到的。請大家在命令行中寫一下下面的代碼,看看會出現什麼結果?

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

那bar函數又怎麼使用呢?hist函數又怎麼使用呢?stem函數又怎麼使用呢?好學的同學可以通過matlab的help來找到問題的答案!順便再提一句:點乘和乘的差別是什麼呢?這裡又遇見了點乘了哦!

休息一下!

需要同學們課後找資料來學習哦。哪個函數是用來畫二維條形直方圖呢?哪個函數是用來畫二維垂直條形圖呢?

stem函數怎麼用?以後大家在學習我的《數位訊號處理》的時候,可要用到它哦。本課程講解了部分二維圖形的注釋命令,那麼還有哪些其他命令呢?

比如legend命令。該函數可以在圖形上添加文字。該命令對有多種圖形對象類型(線條圖、條形圖等)的窗口中顯示出一個文字框。

講完理論,就來實踐。還是那句老話,無實踐,無工科。帶病堅持講課,而且還在課後寫文章,真的很累,但我更要堅持,做一個好榜樣。即使只有幾個員能體會個中辛苦。

函數說明:axis([xmin xmax ymin ymax])功能:設置當前圖形的坐標範圍,分別為x軸的最小值和最大值,y軸的最小值和最大值。axis off:關閉所有的坐標軸標籤、刻度、背景。axis on:打開所有的坐標軸標籤、刻度、背景。

title函數功能:給當前軸加上標題。每個axes圖形對象可以有一個標題。標題定位於axes的上方正中央。title('string') 在當前坐標軸上方正中央放置字符串string作為標題。

預先看看電子類、通信類專業的同學們將要畫什麼圖呢?

誤碼率性能!!!

同學們也會在《通信原理》中看到它(上圖)。同學們做好學習的準備了嗎?以後這些圖可是都要會畫的哦!

以上講解了很多二維圖形注釋命令,大家一定要多多實踐!

title('string') :在當前坐標軸上方正中央放置字符串string作為標題。

text(x,y,'string'):在圖形中指定的位置(x,y)上顯示字符串string。xlabel('string')、ylabel(『string』) :在當前軸對象中的x、y軸貼標籤。注意:若再次執行xlabel或ylabel命令,則新標籤會覆蓋舊標籤。

grid off :在當前的坐標軸中去掉分隔線。

上述內容就是關於如何畫二維圖形的知識。那如何畫三維圖形呢?

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  專業領域畫圖。為同學們以後做好鋪墊!


scatter可用於描繪散點圖。

scatter(X,Y):X和Y是數據向量,以X中數據為橫坐標,以Y中數據位縱坐標描繪散點圖,點的形狀默認使用圈。

例子:

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

scatter(X, Y)可用於通信仿真中表示信號的星座圖,當然也在數據分析的很多地方可以用!!!

bar:條形圖

bar3 : 3D條形圖

barh : 繪製水平條形圖

bar3h : 水平3D條形圖

histogram: 直方圖

histogram2:二元直方圖

polarhistogram:極坐標中直方圖

請同學們在命令行窗口使用這些函數,一定要掌握!只有通過使用才能掌握!反覆強調操作的重要性,不知道有沒有效果?我也只能做到這樣了!此時,老師拋出一個問題?matlab能不能製作動圖呢?

用一個程序實例來完成畫圖課程的講解!

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! 

11月14日今晚20時直播已經講到了第三課錯過前首播的同學,可以在仿真秀官網回看視頻,免費的。

作者蔡老師,仿真秀專欄作者

聲明:原創文章,首發仿真秀APP(ID:fangzhenxiu2018),部分圖片源自網絡,如有不當請聯繫我們,歡迎分享,禁止私自轉載,轉載請聯繫我們。

如果您正在學習CAE ,歡迎加入我們的學習型工程師社群,與我們抱團一起學習理論、軟體和行業應用。如果您也想在本公眾號發布文章,歡迎向我投稿(滿意稿酬和尊重署名)哦,更多詳情請諮詢仿真小助手(在仿真秀公眾號對話框回復 小助手 備註 進群/投稿 即可)。

點擊閱讀原文,參加算法工匠Matlab工程師線上訓練營。

相關焦點

  • 算法工匠MATLAB專訓營:Matlab繪圖,小試牛刀
    在本次課中我就給出了一個實用的算法程序,程序名是dqpsk_IF_wholeframe_Release.m。那麼這個程序和網上的順序有什麼差別呢?可以明確的說網上的程序大多就是一個理論仿真,根本不考慮實際環境的因素。那這樣的程序是培養不了大家的算法思維的。
  • 數學建模必備:Matlab常用15大算法+繪圖工具
    本次課程包含內容豐富,各種繪圖工具介紹(數模獲獎論文圖是非常重要的內容,如果沒有數學圖基本無緣獲獎),各種普通算法實現(數據處理、圖像處理、擬合、插值、概率統計),各種智能算法實現(蟻群算法、SVM、神經網絡、遺傳算法、模擬退火、蒙特卡羅)。還有更多更多豐富的工具。「Matlab從入門到算法實踐」系列已經進行了五期。
  • 【Matlab】繪圖
    反正我們材料剛開始做實驗的時候,同時還在學matlab,對軟體還不熟練,做起來磕磕絆絆的。不過還好第一節實驗課,導師給我們講matlab的一些有關於數據分析的用法(假設)我們看到很多人覺得matlab非常適合數據分析,實際上也確實很多人在用matlab進行數據分析。那我們自己使用matlab進行數據分析並繪圖是個什麼情況呢?
  • 史上最全matlab科研繪圖函數匯總,拿走不謝
    很久以前,小編給大家分享過如何用matlab輸出高質量圖片 (
  • 值得收藏 | 如何用matlab做出酷炫的圖像
    本文承接在matlab入門基礎操作介紹的兩篇推文之後,在matlab入門(下)中介紹了部分繪圖相關的操作,本文首先做一點簡單回顧,
  • 小試牛刀(20)國際漢語教師真題
    因由禮部主持,所以又叫「禮闈」或「春闈」,發榜時正值杏花開放,故稱「杏榜」;秋闈是指鄉試,作為省級考試,每三年舉行一次,即在子、卯、午、酉年的秋八月舉行,故又稱「秋闈」,發榜時正值桂花開放,故稱「桂榜」。根據古代「左廟右學」的傳統,國子監與(  )毗鄰。
  • 基於matlab的RBFNN的kmeans算法研究
    4 仿真結果4.1kmeans算法在matlab中的實現用鳶尾花數據集測試該算法,用matlab中的kmeans算法進行聚類。圖4-2 DSB datebase兩種算法誤差變化比較圖4-3 solar datebase兩種算法誤差變化比較 通過對兩種數據進行聚類分析,可以明顯的看出利用改進後的聚類算法設計的徑向基函數神經網絡分類器,網絡訓練的速度有了一定 的提高,而且該方法設計的分類器在聚類的準確精度上明顯提高,聚類的誤差也更加趨於平緩。
  • [優化] 《MATLAB高效編程技巧與應用:25個案例分析》源程序+數據
    本書首先針對matlab新版本特有的一些編程思想、高效的編程方法、新技術進行了較為詳細的討論,在此基礎上,以大量案例介紹了matlab在科學計算中的應用。 本書可作為高等院校本科生、研究生matlab課程的輔助讀物,也可作為從事科學計算和算法研究的科研人員的參考用書。
  • 筆記 | Origin繪圖進階特訓營·學習參考
    ORIGIN教程 【導讀】經過3天共計6小時的公益免費特訓營直播課堂訓練
  • matlab破解版7.0 32位&64位
    同時matlab7.0破解版還擁有強大的圖形處理功能,matlab7.0破解版具有方便的數據可視化功能,以將向量和矩陣用圖形表現出來,並且可以對圖形進行標註和列印。高層次的作圖包括二維和三維的可視化、圖象處理、動畫和表達式作圖。可用於科學計算和工程繪圖。更多功能,用戶自行下載探索吧。無需繁瑣的matlab破解教程。
  • MATLAB課程之第五章 走入算法(1)
    大一的學生在學matlab的時候,一般都接觸了C語言,我在課堂上就將這兩種語言進行了比較。怎麼比較?通過編程來舉例說明。
  • matlab vs R
    而 matlab 的服務則是建立在用戶付費的基礎之上。你沒有付費,又哪來的享受到官方提供的維護服務。關於入門周期,matlab 要短於 R; 入門難度上, matlab 要比 R 簡單;新手遇到的問題的多少,matlab 用戶小於 R 用戶。
  • 關於Matlab的那些事
    後來在課程(數值分析,微分方程數值解)中matlab經常用到,另外在幫師姐做管理方面的數學模型時用的比較多,便自學了相關方面的知識,主要是看書,自己編程還有上網交流,這時在百度上回答了很多matlab相關的問題,並成為百度matlab技術論壇的副團長,在emuch中蒙前計算模擬區區長cenwanglai看重,聘為計算模擬版的版主。
  • 兩萬餘名選手小試牛刀
    7月25日至27日,由市文明辦、市教育局、南陽日報社主辦,「南陽藍話筒主持培訓學校」和「南陽優學派」協辦的首屆「英才少年百裡挑一」詩詞達人賽舉行線上模擬海選,兩萬餘名參賽選手網上小試牛刀,在緊張有序的比賽中檢驗個人的古詩詞功底、深切感受古詩詞的馨香與魅力。 本次線上模擬海選,旨在讓所有參賽選手提前熟悉線上操作流程,為下一步正式比賽奠定基礎。
  • 大牛心得:學習matlab的一點心得體會
    今天論文君跟大家分享一篇大牛學習matlab的心得體會。我接觸Matlab的時間比較長了,最開始是在大學裡面的數學實驗課上了解了一些,學了些基礎的命令,後來參加過一次數學建模,又自學了點。後來在課程(數值分析,微分方程數值解)中matlab經常用到,另外在幫師姐做管理方面的數學模型時用的比較多,便自學了相關方面的知識,主要是看書,自己編程還有上網交流,這時在百度上回答了很多matlab相關的問題,並成為百度matlab技術論壇的副團長,在emuch中蒙前計算模擬區區長cenwanglai看重,聘為計算模擬版的版主。
  • Matlab擬合詳解
    .^2+10*x+20+rand(1,10).*5; % 產生測試數據plot(x,y,'o')  % 繪圖並標出原始數據點p=polyfit(x,y,2) p = 1×3      -0.7630    8.5343   25.9050
  • 幫你快速入門MATLAB
    由上例可知,MATLAB認識所有一般常用到的加(+)、減(-)、乘(*)、除(/)的數學運算符號,以及冪次運算(^)。小提示: MATLAB將所有變數均存成double的形式,所以不需經過變數宣告(Variabledeclaration)。
  • 小程式設計師殺雞也能用牛刀
    直到最近我開始花大量時間研究Deep Learning,讀了Google如何用RNN做機器翻譯和最新的進展,突然想到,既然RNN能解決上十萬單詞量,單句超過50個詞的機器翻譯問題,那為什麼不用來解決只有幾十個字母的spell correction問題呢?
  • matlab和c語言的區別
    MATLAB可以進行矩陣運算、繪製函數和數據、實現算法、創建用戶界面、連接其他程式語言的程序等,主要應用於工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。MATLAB功能特性:數值分析數值和符號計算工程與科學繪圖控制系統的設計與仿真數字圖像處理數位訊號處理通訊系統設計與仿真
  • 人生苦短,不如學學MATLAB
    使用 MATLAB 超過 16 年,精通各種算法及 MATLAB算法工具箱,出版有《MATLAB從入門到精通》、《MATLAB2008全程指南》、《MATLAB/Simulink通信系統建模與仿真實例精講》等教程。2009年研究生畢業從事算法工程師工作至今,主要工作內容為數學建模、優化算法、預測算法等。在算法工作方面積累了非常豐富的經驗。