Matlab繪圖


要使用plot函式來繪製圖形,需要執行以下步驟:

  • 通過指定要繪製函式的變數x的值的範圍來定義x
  • 定義函式,y = f(x)
  • 呼叫plot命令,如下:plot(x,y)

以下範例將演示該概念。下面繪製x的值範圍是從0100,使用簡單函式y = x,增量值為5

建立指令碼檔案並鍵入以下程式碼 -

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

執行上面範例程式碼,得到以下結果 -

下面再來一個例子來繪製函式y = x^2。 在這個例子中,將繪製兩個具有相同函式的圖,但是在第二次,將減小增量的值。請注意,當減少增量時,圖形變得更平滑。

建立指令碼檔案並鍵入以下程式碼 -

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

執行上面範例程式碼,得到以下結果 -

更改程式碼,減少增量為2 -

在圖上新增標題,標籤,格線和縮放

MATLAB允許沿x軸和y軸,格線新增標題,標籤,並且還可以調整軸來繪製圖形。

  • xlabelylabel命令沿x軸和y軸生成標籤。
  • title命令用於在圖表上設定標題。
  • grid on命令用於將格線放在圖形上。
  • axis equal命令允許生成具有相同比例因子的繪圖和兩個軸上的空格。
  • axis square命令生成一個方形圖。

範例

建立指令碼檔案並鍵入以下程式碼 -

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生成以下圖表 -

在同一個圖上繪製多個函式

可以在同一個圖上繪製多個圖形。以下範例演示了這一概念 -

範例

建立指令碼檔案並鍵入以下程式碼 -

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

MATLAB生成以下圖表 -

在圖上設定顏色

MATLAB提供了八個基本的顏色選項來繪製圖形。 下表顯示了顏色及其程式碼 -

程式碼 顏色
w White
k Black
b Blue
r Red
c Cyan
g Green
m Magenta
y Yellow

範例

下面我們來繪製兩個多項式的圖形 -

建立指令碼檔案並鍵入以下程式碼 -

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生成以下圖表 -

設定軸刻度

axis命令用來設定軸刻度。可以通過以下方式使用axis命令為xy軸提供最小和最大值:

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生成以下圖表 -

生成子圖

當在同一個圖中建立一個繪圖陣列時,這些圖中的每一個圖稱為子圖。 subplot命令用於建立子圖。

該命令的語法是 -

subplot(m, n, p)

其中,mn是繪圖陣列的行數和列數,p表示放置指定圖形的位置。

使用subplot命令建立的每個曲線都可以有自己的特點。 以下範例演示了這一概念 -

範例

下面範例將生成兩個區域塊 -

建立指令碼檔案並鍵入以下程式碼 -

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])

執行上面範例程式碼,得到以下結果 -