MATLAB基础教程(10)——二维中的数据可视化
目錄
MATLAB數(shù)據(jù)可視化
繪圖
在同一個figure里面繪制多個圖形
本期小結(jié)
MATLAB數(shù)據(jù)可視化
繪圖
繪制圖形(二維)一般使用plot函數(shù),這個函數(shù)一般能滿足很多畫圖的功能了,比如我們能繪制一個函數(shù)圖像:
代碼如下:
%% 使用plot繪圖clear all;syms x; % 聲明一個符號xx = 0:0.01:20; % 給定范圍f = sin(x); % 聲明函數(shù)figure; % 打開繪圖窗口plot(f); % 畫圖title('y=sinx');里面的知識之前都涉及到了,大家還有沒有印象。
除了繪制函數(shù),也能繪制矩陣,還記得怎么定義一個矩陣嗎?忘了的小伙伴們可以看下面的代碼回憶一下
%% 繪制矩陣圖像clear all;A = [4 1 -2;2 2 1;3 1 -1]; % 定義一個矩陣figure;plot(A);title('一個矩陣');大家不妨先設(shè)想一下,如果是你來設(shè)計軟件,你怎么去繪制一個矩陣的圖像呢?
在matlab中,它們的解決方案是使用折線圖繪制矩陣,橫坐標(biāo)代表第幾個,每一行用一條線表示,縱坐標(biāo)表示某個橫坐標(biāo)處的高度,下面是繪制的圖像:
下面以函數(shù)為例,現(xiàn)在我感覺這個線不行,我想換成虛線、換成其他顏色,甚至我想用其他符號代替,怎么辦呢?下面有個表格:
假設(shè)我想用青色、虛線,用o畫一條線,那么我的參數(shù)應(yīng)該是這樣的(參數(shù)在plot里面):
'--oc'或'o--c'或'c--o'或其他,不區(qū)分順序,并且也可以省略其中任意個,例如我的程序:
%% 使用plot繪圖clear all;syms x; % 聲明一個符號xx = 0:0.01:20; % 給定范圍f = sin(x); % 聲明函數(shù)figure; % 打開繪圖窗口plot(f,'o--c'); % 畫圖title('y=sinx o--c');
在同一個figure里面繪制多個圖形
我們經(jīng)常遇到一些情況,需要在同一幅圖里面比較多個函數(shù),這就需要畫在一起來對比,比如我們比較tanx和sinx和x在0-pi/2之間的大小時,這時候需要做如下處理,我們就能很輕易地看出tanx>x>sinx這個結(jié)論了(0<x<pi/2時):
此時的代碼如下(范圍我為什么不寫pi/2呢,大家可以試一下,tanx在->pi/2時趨于無窮大):
%% 同時繪制多個函數(shù)在一起clear all;syms x;x = 0:0.01:pi/3; % 設(shè)置x的取值范圍% f = [sin(x);% tan(x);% x]; % 定義一個函數(shù)的矩陣f = [sin(x);tan(x);x];figure;plot(x, f);注意,這里我的plot的參數(shù)是兩個,之前,參數(shù)是一個,只有一個 f 傳了進去,其實,之前使用plot傳遞一個參數(shù),畫的圖是一個向量的圖,因為f 里面存儲的是x區(qū)間對應(yīng)的取值。
比如上面代碼,x = 0:0.01:pi/3,意思是,在0-pi/3的范圍中,從0開始,每隔0.01取值,所以x是一個一維的數(shù)組:
[0, 0.01, 0.02 ...............................]
所以f 存儲的僅僅是每個x 值對應(yīng)的函數(shù)結(jié)果,而此時調(diào)用plot,繪制的是這個向量。
此時,我們使用 plot(x, f),繪制的不再是向量了,而是一組坐標(biāo),第一個是橫坐標(biāo),第二個是縱坐標(biāo),所以我們把x 放在第一個參數(shù)位置,f 放在第二個參數(shù)位置,如果上面代碼中使用 plot(f, x),則會是這樣的圖形:
因為此時plot 將 f 作為橫坐標(biāo),x 作為縱坐標(biāo)來繪制圖形,所以你會看到一個和上面的圖像關(guān)于 y=x 對稱的圖像。
但是,plot(x, f) 繪圖的本質(zhì)仍然是對這 x 區(qū)間里的很多點的繪制。
我們使用x = 0: 0.5: pi/3 和 x = 0:0.001:pi/3 兩種區(qū)間的圖像是截然不同的:
?
出現(xiàn)這種現(xiàn)象的原因,主要就是打點的問題了,在第一種里,x僅僅取到了三個點:
而后面的 x = 0:0.001:pi/3 則取到了上千個打點處,
而我們上數(shù)學(xué)課時也都知道,畫的點越多,連接各點畫出來的圖形越光滑、精確,這就是這兩個圖像出現(xiàn)的原因。
本期小結(jié)
相比于前幾期的內(nèi)容,本期內(nèi)容似乎有點輕松,但是我感覺也算是講清楚了plot的用法(至少現(xiàn)階段絕對是夠用了,并且能準(zhǔn)確的理解里面的內(nèi)容),下面來小結(jié)一下吧:
總結(jié)
以上是生活随笔為你收集整理的MATLAB基础教程(10)——二维中的数据可视化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言音像店程序,音像店管理程序_C
- 下一篇: 在布局空间标注的尺寸量不对_卫生间最佳布