MATLAB基础绘图操作
MATLAB基礎繪圖操作
- 1 基礎用法介紹
- 2 MATLAB繪圖
- 2.1 二維視圖
- 2.1.1 plot函數用法
- 2.1.2 繪制子圖
- 2.1.3 其它
- 2.2 三維視圖
- 2.2.1 plot3函數
- 2.2.2 meshgrid()和mesh()函數——繪制三維曲面的網格圖
- 2.2.3 surf()函數——繪制三維曲面顏色填充圖
本文是筆者在學習MATLAB過程中,針對網上資料所作的一些總結,后續還會補充完善
1 基礎用法介紹
補充關于矩陣向量的內容:
-
向量的轉置
使用 ’ 運算符。若A為列向量,則A’為行向量。 -
向量的截取
假如一個行向量A長度為100,可以通過 B=A(0:29) 來獲取向量A的前30位。 -
計算矩陣行列數
使用size函數,size(A,1)該語句返回的是矩陣A的行數, size(A,2) 該語句返回的是矩陣A的列數 -
提取矩陣行列
提取矩陣A的第i行:A(i, : );
提取矩陣A的第j列:A(:, j );
2 MATLAB繪圖
2.1 二維視圖
2.1.1 plot函數用法
在MATLAB中繪制二維圖形一般用plot函數,plot接收的參數是向量,然后根據傳入的參數畫點,使用直線把點連接起來,如果點足夠密集,展示出來后,在我們眼睛看來,畫出來就是一個曲線。plot函數的基本格式為:
- plot(y)
- plot(x, y)
- plot(x1, y1, x2, y2, …)
第一種沒有輸入x的情況,繪制出來的圖形的橫坐標將默認以1為單位;第二種為橫坐標以設定x為范圍和步進;第三種的參數成對輸入,同時繪制多條曲線。
plot函數可以規定圖形的形狀、顏色等屬性,若不指定則依次使用表中屬性,plot函數的屬性參數表如圖:
在使用MATLAB繪圖之前,我們需要先用figure創建一個圖像窗口,下面依次列舉上述三種情況的實例:
- plot函數只規定y和屬性:
- plot函數規定x、y和屬性:
- plot函數同時繪制多條曲線:
注:1、2其實就是在使用plot函數繪圖時有沒有指明橫坐標的問題,若像1這樣未指明橫坐標,那么橫坐標最小以1為單位,對于一些精度要求不高的場合可以這么做。
2.1.2 繪制子圖
使用subplot()函數可以將一個figure分為多個區塊,實現在一個figure下繪制多張子圖,subplot函數的格式為subplot(m, n, p),m和n分別表示將整個figure劃分為m行n列,p表示子圖位置在從左往右、從上往下數的第p個地方。示例代碼如下:
x = 0:0.1:2*pi; %給定x的范圍和步進 f1 = sin(x); %聲明函數1 f2 = cos(x); %聲明函數2figure; %打開一個繪圖窗口 subplot(2, 2, 1); %figure劃分為2行2列,子圖位置為1即第一個 plot(x, f1); %繪制曲線 title('f1=sinx'); %打印標題subplot(2, 2, 2); %figure劃分為2行2列,子圖位置為2即第二個 plot(x, f2); %繪制曲線 title('f2=cosx'); %打印標題2.1.3 其它
- grid on 開啟框線,該選項默認關閉
- box off 關閉邊框
- polar()繪制極坐標
- 同一figure內的同一位置重復繪圖,使用hold on保存上一張圖像,否則原圖會被覆蓋
2.2 三維視圖
2.2.1 plot3函數
同plot函數一樣,在傳入的三維矩陣中找出三維空間中的點,然后使用線連接起來,所以plot3函數畫的是空間曲線,示例如下:
t = 0:0.1:10*pi; %給定t的范圍和步進 x = sin(t); %參數x y = cos(t); %參數y z = t; %參數z figure; %打開一個繪圖窗口 plot3(x, y, z); %繪制曲線 title('彈簧狀曲線'); %打印標題 xlabel('x軸'); %標記x軸名稱 ylabel('y軸'); %標記y軸名稱 zlabel('z軸'); %標記z軸名稱2.2.2 meshgrid()和mesh()函數——繪制三維曲面的網格圖
plot3函數只能繪制空間曲線,如果想繪制空間曲面可以選擇 meshgrid()和mesh()函數。meshgrid接受兩個參數,a 和 b ,每個參數(a 或者 b)都是一個一維數組(嚴格來講,叫做向量),假設 a 中有126個元素(即126個區間點,記為na),b 中有63個元素(即63個區間點記為nb),那么,結果x 和 y 均是 nb 行 na 列的矩陣(二維數組),并且對于 x ,每一行均為 a 的復制,共nb行(即 x 中有63行 a),而對于 y,每一列均為 b (的轉置)的復制,共na列(即 y 中有126列 b)。
2.2.3 surf()函數——繪制三維曲面顏色填充圖
上面說的mesh()函數繪制出來的圖形其實是一個個方格,而surf()函數可以繪制真正的曲面,方法與mesh()幾乎一致,現比較兩種方法的結果:
[x, y] = meshgrid(-2*pi:0.1:2*pi, -2*pi:0.2:2*pi); z = sin(x) + cos(x); figure; subplot(2, 1, 1); surf(x, y, z); % surf畫曲面 title('surf'); subplot(2, 1, 2); mesh(x, y, z); % mesh畫方格 title('mesh');總結
以上是生活随笔為你收集整理的MATLAB基础绘图操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 西门子编程使用的OB块解释
- 下一篇: 计算机网络 校园网规划与设计方案,校园网