matlab hist函数_算法工匠MATLAB专训营:Matlab绘图,小试牛刀
作者 | 蔡老師 仿真秀專欄作者
首發(fā) | 仿真秀平臺(tái)
導(dǎo)讀:正文之前,我在此詳細(xì)說(shuō)明一下,因?yàn)楸疚陌某绦蛱y得,網(wǎng)上肯定找不到這樣的程序。隨著講課的越來(lái)越深入,我給出的程序會(huì)越來(lái)越實(shí)用,接近于實(shí)際產(chǎn)品。在本次課中我就給出了一個(gè)實(shí)用的算法程序,程序名是dqpsk_IF_wholeframe_Release.m。
那么這個(gè)程序和網(wǎng)上的順序有什么差別呢?可以明確的說(shuō)網(wǎng)上的程序大多就是一個(gè)理論仿真,根本不考慮實(shí)際環(huán)境的因素。那這樣的程序是培養(yǎng)不了大家的算法思維的。而在這個(gè)程序里,關(guān)于信號(hào)的捕獲、跟蹤、解調(diào)、交織解交織、譯碼等內(nèi)容都在程序里面詳細(xì)寫(xiě)了。
大家在網(wǎng)上想找到這方面的程序,幾乎是白日做夢(mèng)!
再次強(qiáng)調(diào)這個(gè)程序可以用于產(chǎn)品的研發(fā),因此需要大家仔細(xì)的閱讀,比較和其他理論程序的差異!比如第一章的內(nèi)容和本章的其他程序。后面的課程中我還會(huì)給出用于產(chǎn)品研發(fā)的程序。
dqpsk_IF_wholeframe_Release.m 是下行信道的程序,那么上行信道的程序會(huì)是什么樣呢?dqpsk_IF_wholeframe_Release.m只是控制信道的程序,那么業(yè)務(wù)信道的程序會(huì)是什么樣子的呢?后續(xù)會(huì)接著講,程序也會(huì)跟著上,歡迎大家跟著加入算法工匠Matlab技能專訓(xùn)微課堂(見(jiàn)下文)。
本人當(dāng)年寫(xiě)這個(gè)程序花了兩周左右的時(shí)間,大家要消化這個(gè)程序需要多長(zhǎng)時(shí)間呢?大家也許心里都大概清楚!
以下是正文
現(xiàn)在很多學(xué)科都要用到MATLAB,為什么呢?因?yàn)槿藗兒茈y直觀的從一大堆數(shù)據(jù)中發(fā)現(xiàn)它們的含義或者規(guī)律,而數(shù)據(jù)圖形能夠使視覺(jué)感官直接感受到數(shù)據(jù)的許多內(nèi)在本質(zhì),發(fā)現(xiàn)數(shù)據(jù)的內(nèi)在聯(lián)系。
MATLAB可以表達(dá)出數(shù)據(jù)的二維、三維的圖形。通過(guò)圖形的線型、色彩、視角等屬性的控制,可把數(shù)據(jù)的內(nèi)在特征表現(xiàn)出來(lái)。所以自然成為很多學(xué)科畫(huà)圖的首選工具。
下面我們一起來(lái)學(xué)習(xí)Matlab繪圖的基本知識(shí)和相關(guān)命令。
這么多用處,大家一定要學(xué)好哦!
MATLAB擁有強(qiáng)大的繪圖功能,軟件提供了一系列的繪圖函數(shù),用戶不需要過(guò)多的考慮繪圖的細(xì)節(jié),只需要給出一些基本參數(shù)就能畫(huà)出所需圖形。這類(lèi)畫(huà)圖函數(shù)稱為高層繪圖函數(shù)。
而且MATLAB還提供了直接對(duì)圖形句柄進(jìn)行操作的低層繪圖操作,這樣就可以直接對(duì)畫(huà)好的圖形直接操作。這類(lèi)操作是將圖形的每個(gè)圖形元素(如坐標(biāo)軸、曲線、文字等)看做一個(gè)獨(dú)立的對(duì)象,系統(tǒng)給每個(gè)對(duì)象分配一個(gè)句柄,通過(guò)句柄對(duì)該圖形元素進(jìn)行操作,而不影響其他部分。是不是很牛啊?
二維圖形是將平面坐標(biāo)上的數(shù)據(jù)點(diǎn)連接起來(lái)的平面圖形??梢圆捎貌煌淖鴺?biāo)系,如直角坐標(biāo)、對(duì)數(shù)坐標(biāo)、極坐標(biāo)等。二維圖形的繪制是其他繪圖操作的基礎(chǔ)。
最基本也是最重要的函數(shù)登場(chǎng)了!plot函數(shù)!怎么用?有沒(méi)有實(shí)例?我們接著往下學(xué)習(xí)。
二維圖形是將平面坐標(biāo)上的數(shù)據(jù)點(diǎn)連接起來(lái)的平面圖形。可以采用不同的坐標(biāo)系,如直角坐標(biāo)、對(duì)數(shù)坐標(biāo)、極坐標(biāo)等。二維圖形的繪制是其他繪圖操作的基礎(chǔ)。上堂課講到繪制二維曲線的基本函數(shù)為plot,怎么用呢?plot函數(shù)是最基本而且應(yīng)用最為廣泛的繪圖函數(shù),利用它可以在二維平面上繪制出不同的曲線。怎么個(gè)不同法呢?
講完理論,該來(lái)動(dòng)手演練了。無(wú)實(shí)踐、無(wú)工科。
這樣的程序會(huì)出什么結(jié)果呢?subplot有什么功能呢?linspace又有什么功能呢?請(qǐng)大家到help里面查找這兩個(gè)函數(shù)的說(shuō)明文件。至于如何使用?咱們接著學(xué)習(xí)。
同學(xué)們是不是得到這樣的圖形呢?
再給出一個(gè)例子。在[0 , 2pi]區(qū)間,繪制一條曲線。什么曲線呢?
程序如下:在命令行窗口中輸入以下命令
>> x=0:pi/50:2*pi;
>> y=2*exp(-0.5*x).*sin(2*pi*x);
>> plot(x,y
程序執(zhí)行后,打開(kāi)一個(gè)圖形窗口,在其中就有程序想要繪制的曲線。注意:指數(shù)函數(shù)和正弦函數(shù)之間要用點(diǎn)乘運(yùn)算,因?yàn)槎呤窍蛄?。很多同學(xué)經(jīng)常不注意整個(gè)點(diǎn),這個(gè)點(diǎn)有什么用呢?請(qǐng)同學(xué)們?nèi)?wèn)百度。
一定要知道點(diǎn)乘和乘的差異!!!
作為剛接觸MATLAB任何人,還要掌握哪些知識(shí)呢?
極坐標(biāo)是屬于高中就學(xué)習(xí)的數(shù)學(xué)知識(shí),因此有必要在這里講一下。
還需要簡(jiǎn)單的講一些圖像處理的知識(shí)。同學(xué)們不要擔(dān)心,都是最基本的知識(shí)。
一點(diǎn)都不難!
這些函數(shù)必須都要會(huì)使用,而且是熟練使用。
還要補(bǔ)充講解一個(gè)函數(shù)。semilogx函數(shù)
功能:x軸對(duì)數(shù)圖形。對(duì)于通信專業(yè)的學(xué)生而言,這個(gè)函數(shù)是肯定要用到的。請(qǐng)大家在命令行中寫(xiě)一下下面的代碼,看看會(huì)出現(xiàn)什么結(jié)果?
>>x = 0:.1:10;
>>semilogx(x,cos(10.^x))
那bar函數(shù)又怎么使用呢?hist函數(shù)又怎么使用呢?stem函數(shù)又怎么使用呢?好學(xué)的同學(xué)可以通過(guò)matlab的help來(lái)找到問(wèn)題的答案!順便再提一句:點(diǎn)乘和乘的差別是什么呢?這里又遇見(jiàn)了點(diǎn)乘了哦!
休息一下!
需要同學(xué)們課后找資料來(lái)學(xué)習(xí)哦。哪個(gè)函數(shù)是用來(lái)畫(huà)二維條形直方圖呢?哪個(gè)函數(shù)是用來(lái)畫(huà)二維垂直條形圖呢?
stem函數(shù)怎么用?以后大家在學(xué)習(xí)我的《數(shù)字信號(hào)處理》的時(shí)候,可要用到它哦。本課程講解了部分二維圖形的注釋命令,那么還有哪些其他命令呢?
比如legend命令。該函數(shù)可以在圖形上添加文字。該命令對(duì)有多種圖形對(duì)象類(lèi)型(線條圖、條形圖等)的窗口中顯示出一個(gè)文字框。
講完理論,就來(lái)實(shí)踐。還是那句老話,無(wú)實(shí)踐,無(wú)工科。帶病堅(jiān)持講課,而且還在課后寫(xiě)文章,真的很累,但我更要堅(jiān)持,做一個(gè)好榜樣。即使只有幾個(gè)員能體會(huì)個(gè)中辛苦。
函數(shù)說(shuō)明:axis([xmin xmax ymin ymax])
功能:設(shè)置當(dāng)前圖形的坐標(biāo)范圍,分別為x軸的最小值和最大值,y軸的最小值和最大值。
axis off:關(guān)閉所有的坐標(biāo)軸標(biāo)簽、刻度、背景。
axis on:打開(kāi)所有的坐標(biāo)軸標(biāo)簽、刻度、背景。
title函數(shù)功能:給當(dāng)前軸加上標(biāo)題。每個(gè)axes圖形對(duì)象可以有一個(gè)標(biāo)題。標(biāo)題定位于axes的上方正中央。
title('string') 在當(dāng)前坐標(biāo)軸上方正中央放置字符串string作為標(biāo)題。
預(yù)先看看電子類(lèi)、通信類(lèi)專業(yè)的同學(xué)們將要畫(huà)什么圖呢?
《通信原理》書(shū)本理論知識(shí)!
數(shù)字信號(hào)處理
誤碼率性能!!!
功率譜圖
星座圖!!!同學(xué)們以后會(huì)在《通信原理》中看到它。
同學(xué)們也會(huì)在《通信原理》中看到它(上圖)。同學(xué)們做好學(xué)習(xí)的準(zhǔn)備了嗎?以后這些圖可是都要會(huì)畫(huà)的哦!
以上講解了很多二維圖形注釋命令,大家一定要多多實(shí)踐!
title('string') :在當(dāng)前坐標(biāo)軸上方正中央放置字符串string作為標(biāo)題。
text(x,y,'string'):在圖形中指定的位置(x,y)上顯示字符串string。
xlabel('string')、ylabel(‘string’) :在當(dāng)前軸對(duì)象中的x、y軸貼標(biāo)簽。
注意:若再次執(zhí)行xlabel或ylabel命令,則新標(biāo)簽會(huì)覆蓋舊標(biāo)簽。
grid on:給當(dāng)前的坐標(biāo)軸增加分隔線。
grid off :在當(dāng)前的坐標(biāo)軸中去掉分隔線。
上述內(nèi)容就是關(guān)于如何畫(huà)二維圖形的知識(shí)。那如何畫(huà)三維圖形呢?
matlab三維畫(huà)圖主要有三個(gè)命令:plot3命令、mesh命令和surf命令。
本課程只是簡(jiǎn)單介紹一下plot3函數(shù)。
plot3是三維畫(huà)圖的基本函數(shù),繪制的是最為主要的3D曲線圖,最主要的調(diào)用格式是:plot3(X,Y,Z)
當(dāng)X,Y,Z為長(zhǎng)度同樣的向量時(shí),plot3命令將繪得一條分別以向量X,Y,Z為(X,Y,Z)坐標(biāo)值的曲線。
當(dāng)X,Y,Z均為m*n的矩陣時(shí),plot3命令將繪得m條曲線,每條曲線均為X,Y,Z列向量為(X,Y,Z)坐標(biāo)值的曲線。
余下的兩個(gè)函數(shù)怎么使用呢?請(qǐng)同學(xué)們自行查找資料學(xué)習(xí)吧。
溫馨提示:通信類(lèi)學(xué)生一定要掌握semilogx函數(shù)的用法哦,因?yàn)槟銜?huì)一直和它打交道。比如上堂課涉及的誤碼率曲線圖就是這個(gè)函數(shù)畫(huà)的哦。
增加2.4 專業(yè)領(lǐng)域畫(huà)圖。為同學(xué)們以后做好鋪墊!
scatter可用于描繪散點(diǎn)圖。
scatter(X,Y):X和Y是數(shù)據(jù)向量,以X中數(shù)據(jù)為橫坐標(biāo),以Y中數(shù)據(jù)位縱坐標(biāo)描繪散點(diǎn)圖,點(diǎn)的形狀默認(rèn)使用圈。
例子:
X = [1:100];
Y = X + rand(size(X));
scatter(X, Y)可用于通信仿真中表示信號(hào)的星座圖,當(dāng)然也在數(shù)據(jù)分析的很多地方可以用!!!
bar:條形圖
bar3 : 3D條形圖
barh : 繪制水平條形圖
bar3h : 水平3D條形圖
histogram: 直方圖
histogram2:二元直方圖
polarhistogram:極坐標(biāo)中直方圖
area: 填充區(qū)二維繪圖
pie : 餅圖
pie3 : 三維餅圖
請(qǐng)同學(xué)們?cè)诿钚写翱谑褂眠@些函數(shù),一定要掌握!只有通過(guò)使用才能掌握!反復(fù)強(qiáng)調(diào)操作的重要性,不知道有沒(méi)有效果?我也只能做到這樣了!
此時(shí),老師拋出一個(gè)問(wèn)題?matlab能不能制作動(dòng)圖呢?
用一個(gè)程序?qū)嵗齺?lái)完成畫(huà)圖課程的講解!
data = normrnd(0,2,1,1000);% 生成隨機(jī)數(shù)(正態(tài)分布)
%繪制直方圖
hist(data,30); hold on;
%求出概率密度函數(shù)參數(shù)
[mu,sigma]=normfit(data);
%繪制概率密度函數(shù)
[n,x]=hist(data,30);
y = normpdf(x,mu,sigma);
% 處理數(shù)據(jù),使得密度函數(shù)和最高點(diǎn)對(duì)齊
y=y/max(y)*max(n);
plot(x,y,'r-');
學(xué)過(guò)概率統(tǒng)計(jì)課程的人都應(yīng)該能看懂!正態(tài)分布的案例實(shí)在是太多了。請(qǐng)記住上述程序中涉及到的函數(shù)。這個(gè)程序就是為了讓同學(xué)們感受正態(tài)分布和平均分布的差異!有圖就非常容易理解!
最后,我只想把我的知識(shí)通過(guò)網(wǎng)絡(luò)傳播給真正想學(xué)的人了!
自2019年11月28日起,蔡老師每周二和周五,在仿真秀平臺(tái)開(kāi)展算法工匠Matlab技能專訓(xùn)微課堂,共8期,通過(guò)語(yǔ)音+PPT,并且為用戶提供即時(shí)在線答疑。明晚是第2次課,歡迎大家繼續(xù)來(lái)聽(tīng)。
以下是MATLAB技能專訓(xùn)的課程安排
注:11月28日微信多群直播,已經(jīng)講到了第三課,錯(cuò)過(guò)前首播的同學(xué),可以聯(lián)系我看回放。
溫馨提示:電子類(lèi)、通信類(lèi)專業(yè)的大學(xué)生們必看!適合在電子、通信、生物醫(yī)學(xué)、計(jì)算機(jī)領(lǐng)域工作的研究人員自學(xué)MATLAB!
作者:蔡老師,仿真秀專欄作者
聲明:原創(chuàng)文章,首發(fā)仿真秀,部分圖片源自網(wǎng)絡(luò),如有不當(dāng)請(qǐng)聯(lián)系我們,歡迎分享,禁止私自轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系我們。
點(diǎn)擊了解算法工匠MATLAB專訓(xùn)營(yíng),填寫(xiě)即可報(bào)名成功,免費(fèi)領(lǐng)取?www.fangzhenxiuxiu.com 與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的matlab hist函数_算法工匠MATLAB专训营:Matlab绘图,小试牛刀的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python实现udp聊天室_pytho
- 下一篇: 非确定性算法_带你从不同角度了解强化学习