位置:首頁 > 高級語言 > Matlab教學 > MATLAB繪圖

MATLAB繪圖

要繪製函數圖形,需要采取以下步驟:

  1. 定義x,通過指定的變量 x 值的範圍,該函數被繪製

  2. 定義函數, y = f(x)

  3. 調用plot命令,如 plot(x, y)

下麵的例子演示了這一概念。讓我們繪製簡單的函數y = x , x值的範圍從0到100,增量為5。

創建一個腳本文件,並輸入下麵的代碼:

x = [0:5:100];
y = x;
plot(x, y)

當運行該文件,MATLAB顯示下麵的圖形:

Plotting y = x

讓我們舉一個例子,繪製函數y = x2。在這個例子中,我們將繪製兩個圖形具有相同的函數,但在第二次,我們將減少值的增量。請注意,因為我們減少增量,圖形變得平滑。

創建一個腳本文件,並輸入下麵的代碼:

x = [1 2 3 4 5 6 7 8 9 10];
x = [-100:20:100];
y = x.^2;
plot(x, y)

當您運行該文件,MATLAB顯示下麵的圖形:

Plotting y = x^2

更改代碼文件小,減少增量5:

x = [-100:5:100];
y = x.^2;
plot(x, y)

MATLAB繪製一條平滑的曲線圖:

Plotting y = x^2 with less increment

添加標題,標簽,網格線和縮放的圖形

MATLAB允許添加標題,調整軸的x軸和y軸,網格線,並沿標簽美化圖形。

  • xlabel和ylabel指令的產生沿x軸和y軸的標簽。

  • 標題命令允許你把圖表上的一個標題。

  • 網格命令允許你把圖上的網格線。

  • 軸等於命令允許生成與同等規模因素和空間兩個坐標軸上的積點

  • 軸方形命令生成一個正方形的積點

示例

創建一個腳本文件,並輸入下麵的代碼:

x = [0:0.01:10];
y = sin(x);
plot(x, y), xlabel('x'), ylabel('Sin(x)'), title('Sin(x) Graph'),
grid on, axis equal

MATLAB生成如下圖:

Sprucing up our graphs

在同一張圖上繪製多個函數

您可以繪製多個圖形相同的積點。下麵的例子演示了這一概念:

示例

創建一個腳本文件,並輸入下麵的代碼:

x = [0 : 0.01: 10];
y = sin(x);
g = cos(x);
plot(x, y, x, g, '.-'), legend('Sin(x)', 'Cos(x)')

MATLAB生成如下圖:

Multiple Functions on the Same Graph

在走勢圖上的顏色設置

MATLAB提供八個基本繪製圖形的顏色選項。下表顯示的顏色和他們的代碼:

Color Code
White w
Black k
Blue b
Red r
Cyan c
Green g
Magenta m
Yellow y

示例

讓我們繪製圖形兩個多項式

  1. f(x) = 3x4 + 2x3+ 7x2 + 2x + 9 and

  2. g(x) = 5x3 + 9x + 2

創建一個腳本文件,並輸入下麵的代碼:

x = [-10 : 0.01: 10];
y = 3*x.^4 + 2 * x.^3 + 7 * x.^2 + 2 * x + 9;
g = 5 * x.^3 + 9 * x + 2;
plot(x, y, 'r', x, g, 'g')

當您運行該文件,MATLAB生成下圖:

Colors on Graph

設置軸刻度

該的軸命令允許您設置軸的刻度。您可以提供的最小值和最大值的x和y軸以下列方式使用軸命令:

axis ( [xmin xmax ymin ymax] )

下麵的例子顯示了這一點:

示例

創建一個腳本文件,並輸入下麵的代碼:

x = [0 : 0.01: 10];
y = exp(-x).* sin(2*x + 3);
plot(x, y), axis([0 10 -1 1])

當您運行該文件,MATLAB生成下圖:

Setting Axis Scales

生成子圖

當創建一個數組地塊在相同的數字,這些地塊被稱為子圖。subplot 命令創建子圖。

該命令的語法是:

subplot(m, n, p)

其中,m和n積陣列的行和列的數量,p指定把一個特定的積。

subplot 命令創建的每個繪圖都可以有其自己的特點。下麵的例子演示了這一概念:

示例

讓我們產生兩個圖:

y = e−1.5xsin(10x)

y = e−2xsin(10x)

創建一個腳本文件,並輸入下麵的代碼:

x = [0:0.01:5];
y = exp(-1.5*x).*sin(10*x);
subplot(1,2,1)
plot(x,y), xlabel('x'),ylabel('exp(–1.5x)*sin(10x)'),axis([0 5 -1 1])
y = exp(-2*x).*sin(10*x);
subplot(1,2,2)
plot(x,y),xlabel('x'),ylabel('exp(–2x)*sin(10x)'),axis([0 5 -1 1])

當您運行該文件,MATLAB生成下圖:

Generating Sub-Plots