第7章MATLAB計算的視覺化和GUI設計

2023-01-24 11:00:02 字數 4252 閱讀 8495

matlab具有非常強大的二維和三維繪圖功能,尤其擅長於各種科**算結果的視覺化。

7.1二維曲線的繪製

7.1.1基本繪圖命令plot

1. plot(x) 繪製x向量曲線

plot命令是matlab中最簡單而且使用最廣泛的乙個繪圖命令,用來繪製二維曲線。

語法: plot(x繪製以x為縱座標的二維曲線

plot(x,y繪製以x為橫座標、y為縱座標的二維曲線

說明:x和y可以是向量或矩陣。

【例7.1】用plot(x)命令畫直線,如圖7.1所示。

x1=[1 2 3]

x1 =

1 2 3

plot(x1)

x2=[0 1 0]

x2 =

0 1 0

plot(x2)

2. plot(x,y) 繪製向量x和y的曲線

【例7.2】繪製正弦曲線y=sin(x)和方波曲線,如圖7.2所示。

x1=0:0.1:2*pi;

y1=sin(x1y1為x1的正弦函式

plot(x1,y1)

x2=[0 1 1 2 2 3];

y2=[1 1 0 0 1 1];

plot(x2,y2)

axis([0 4 0 2將座標軸範圍設定為0-4和0-2

3. plot(x) 繪製矩陣x的曲線

【例7.3】矩陣圖形的繪製,如圖7.3所示。

x1=[1 2 3;4 5 6];

plot(x1)

x2=peaks產生乙個49*49的矩陣

plot(x2)

程式分析:a圖中有三條曲線而不是兩條曲線,因為矩陣x1有三列,每列向量畫一條曲線;b圖為由peaks函式生成的乙個49×49的二維矩陣,因此產生49條曲線。

4. plot(x,y)繪製混合式曲線

當plot(x,y)命令中的引數x和y是向量或矩陣時,分別有以下幾種情況:

如果x是向量,而y是矩陣,則x的長度與矩陣y的行數或列數必須相等,如果x的長度與y的行數相等,則向量x與矩陣y的每列向量對應畫一條曲線;如果x的長度與y的列數相等,向量x與y的每行向量畫一條曲線,如果y是方陣,則x和y的行數和列數都相等,將向量x與矩陣y的每列向量畫一條曲線;

如果x是矩陣,而y是向量,則y的長度必須等於x的行數或列數,繪製的方法與前一種相似;

如果x和y都是矩陣,則大小必須相同,矩陣x的每列和y的每列畫一條曲線。

【例7.4】混合式圖形的繪製,如圖7.4所示。

x1=[1 2 3];

y1=[1 2 3;4 5 6]

y1 =

1 2 3

4 5 6

plot(x1,y1每行一條曲線

y2=[1 2 ;3 4; 5 6]

y2 =

1 2

3 4

5 6

plot(x1,y2每一列一條曲線

plot(y1,x1)

plot(y2,x1)

x2=[1 1 1;2 2 2]

x2 =

1 1 1

2 2 2

plot(x2,y1按列與列對應的方式

5. plot(z)繪製復向量曲線

【例7.4續】下面的程式畫出的曲線和圖7.4(e)中的相同。

z1=x2+i*y1

z1 =

1.0000 + 1.0000i 1.0000 + 2.0000i 1.0000 + 3.0000i

2.0000 + 4.0000i 2.0000 + 5.0000i 2.0000 + 6.0000i

plot(z1以實部為橫座標,虛部為縱座標

6. plot(x1,y1,x2,y2,…)繪製多條曲線

plot命令還可以同時繪製多條曲線,用多個矩陣對為引數,matlab自動以不同的顏色繪製不同曲線。每一對矩陣(xi,yi)均按照前面的方式解釋,不同的矩陣對之間,其維數可以不同。

【例7.5】繪製三條曲線,如圖7.5所示。

x=0:0.1:2*pi;

plot(x,sin(x),x,cos(x),x,sin(3*x)) %畫三條曲線

7.1.2繪製曲線的一般步驟

表7.1為繪製二維、三維圖形一般步驟的歸納。

表7.1 繪製二維、三維圖形的一般步驟

說明: 步驟1和3是最基本的繪圖步驟,如果利用matlab的預設設定通常只需要這兩個基本步驟就可以基本繪製出圖形,而其他步驟並不完全必需。

步驟2一般在圖形較多的情況下,需要指定圖形視窗、子圖時使用。

除了步驟1、2、3的其他步驟使用者可以根據自己需要改變前後次序。

7.1.3多個圖形繪製的方法

1. 指定圖形視窗

如果需要多個圖形視窗同時開啟時,可以使用figure語句。

語法: figure(n產生新圖形視窗

說明:如果該視窗不存在,則產生新圖形視窗並設定為當前圖形視窗,該視窗名為「figure 而不關閉其它視窗。

2. 同一視窗多個子圖

如果需要在同乙個圖形視窗中布置幾幅獨立的子圖,可以在plot命令前加上subplot命令來將乙個圖形視窗劃分為多個區域,每個區域一幅子圖。

語法: subplot(m,n,k使m×n幅子圖中的第k幅成為當前圖

說明:將圖形視窗劃分為m×n幅子圖,k是當前子圖的編號,「,」可以省略。子圖的序號編排原則是:左上方為第1幅,先向右後向下依次排列,子圖彼此之間獨立。

【例7.6】用subplot命令畫四個子圖,如圖7.6所示。

x=0:0.1:2*pi;

subplot(2,2,1分割為2*2個子圖,左上方為當前圖

plot(x,sin(x))

subplot(2,2,2右上方為當前圖

plot(x,cos(x))

subplot(2,2,3左下方為當前圖

plot(x,sin(3*x))

subplot(224右下方為當前圖,省略逗號

plot(x,cos(3*x))

如果在使用繪圖命令之後,想清除圖形視窗畫其它圖形,應使用「clf」命令清圖形窗。

clf清除子圖

3. 同一視窗多次疊繪

為了在乙個座標系中增加新的圖形物件,可以用「hold」命令來保留原圖形物件。

語法: hold on使當前座標系和圖形保留

hold off使當前座標系和圖形不保留

hold在以上兩個命令中切換

說明:在設定了「hold on」後,如果畫多個圖形物件,則在生成新的圖形時保留當前座標系中已存在的圖形物件,matlab會根據新圖形的大小,重新改變座標系的比例。

【例7.7】在同一視窗畫出函式在區間[0,2π]的曲線和在區間[-π,π]的曲線,如圖7.7(a)所示。

x1=0:0.1:2*pi;

plot(x1,sin(x1))

hold on

x2=-pi:.1:pi;

plot(x2,cos(x2))

程式分析:座標系的範圍由0~2π轉變為-π~2π。

4. 雙縱座標圖

語法: plotyy(x1,y1,x2,y2以左、右不同縱軸繪製兩條曲線

說明:左縱軸用於(x1,y1)資料,右縱軸用於(x2,y2)資料來繪製兩條曲線。座標軸的範圍、刻度都自動產生。

【例7.7續】用plotyy函式實現在同一圖形視窗繪製兩條曲線,如圖7.7(b)所示。

plotyy(x1,sin(x1),x2,cos(x2))

程式分析:plotyy函式用不同顏色繪製兩條曲線,左右兩邊使用兩個縱座標軸,橫座標為-π~2π。

7.1.4曲線的線型、顏色和資料點形

plot命令還可以設定曲線的線段型別、顏色和資料點形等,如表7.2所示。

表7.2 線段、顏色與資料點形

語法:plot(x,y,s)

說明:x為橫座標矩陣,y為縱座標矩陣,s為型別說明字串引數;s字串可以是線段型別、顏色和資料點形三種型別的符號之一,也可以是三種型別符號的組合。

【例7.8】用不同線段型別、顏色和資料點形畫出sinx和cosx曲線,如圖7.8所示。

x=0:0.1:2*pi;

plot(x,sin(x),'r用紅色點劃線畫出曲線

hold on

plot(x,cos(x),'b:o用藍色圓圈畫出曲線,用點線連線

7.1.5設定座標軸和文字標註

1. 座標軸的控制

用座標控制命令axis來控制座標軸的特性,表7.3列出其常用控制命令。

表7.3 常用的座標控制命令

第7章計算方法的MATLAB實現講稿

計算方法主要研究數學問題的數值解,涉及的內容廣。利用matlab提供的部分函式解決,可以實現某些情況下的數值求解。本章作簡要介紹。7.1 一元非線性方程求解 求解一元非線性方程的方法主要有二分法 割線法 牛頓法等。本節主要介紹兩個可以求解一元非線性方程的函式,即fzero函式和roots函式。7.1...

基於VolumeViz的儲層視覺化研究與實現

摘要 研究了open inventor的擴充套件模組volumeviz提供的支援海量資料集的轉化和資料整合技術,介紹了新的資料儲存格式ldm,並將傳統的segy 資料轉換為ldm檔案格式,最終設計實現了油藏儲層剖面的三維顯示。關鍵詞 油藏儲層建模 三維視覺化 volumeviz 儲層剖面 0引言儲層...

現場視覺化管理基本標準及應用案例第1版

第1稿 2015 年 8月 10 日 第一部分 現場視覺化管理基本標準 一 顏色 線條標準 二 現場區域線 定位線繪製方法 100mm 危險化學品 雙角定位 100mm 三 操作室 休息室物品定位線繪製方法 12mm 四角定位雙角定位 100mm 100mm 雙角定位 12mm 100mm 四 桌面...