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