Skip to main content

MATLAB Plot 語法速查表 (針對 Simulink 模擬結果)


1. 基本起手式:提取資料與繪圖

% 1. 提取資料
t = out.tout;               % 抓取時間軸
y = out.sim_result;         % 抓取模擬數據

% 2. 建立畫布與繪圖
figure;                     % 開啟一個新的空白視窗 (避免覆蓋舊圖)
plot(t, y);                 % 最基本的畫圖指令

如果儲存格式是設定為 Timeseries (官方推薦):

% 最快捷徑:連時間都不用抓,直接丟進去畫!
figure;
plot(out.sim_result, 'LineWidth', 2);

2. 線條風格與顏色設定

plot() 的第三個參數,可以用字串來快速設定「顏色」、「線型」與「標記」。 格式為:plot(x, y, '顏色+線型+標記')

  • 顏色 (Colors): r (紅), b (藍), g (綠), k (黑), m (洋紅), c (青)
  • 線型 (Line Styles): - (實線), -- (虛線), : (點線), -. (點劃線)
  • 標記 (Markers): o (圓圈), * (星號), x (叉叉), s (正方形)
% 範例:畫一條紅色、虛線、帶有圓圈標記的線,線寬為 2
plot(t, y, 'r--o', 'LineWidth', 2);

3. 圖表美化:標籤、標題與網格

畫完線之後,務必加上標籤讓圖表具有可讀性:

plot(t, y, 'b-', 'LineWidth', 1.5);

% 美化語法
title('系統響應結果');        % 圖表大標題
xlabel('時間 (s)');         % X 軸標籤
ylabel('振幅 / 轉速');      % Y 軸標籤
grid on;                  % 打開背景網格 (看數據更清楚)
xlim([0 10]);             % 限制 X 軸的顯示範圍 (例如只顯示 0 到 10 秒)
ylim([-1 5]);             % 限制 Y 軸的顯示範圍

4. 多條線畫在同一張圖 (比較不同參數)

使用 hold on 可以讓 MATLAB 不要清掉舊的線,繼續在同一張圖上畫新的線。

figure;
% 畫第一條線
plot(t1, y1, 'b-', 'LineWidth', 2); 
hold on;  % 鎖定畫布!接下來畫的線都會疊加上去

% 畫第二條線
plot(t2, y2, 'r--', 'LineWidth', 2); 

% 加上圖例 (順序必須跟畫線的順序一致)
legend('情境 A (Kp=1.5)', '情境 B (Kp=5.0)');

title('不同參數之結果比較');
xlabel('時間 (s)');
ylabel('數值');
grid on;
hold off; % 解除鎖定 (好習慣:畫完後解除)

5. 一張大圖切成多個小圖 (Subplot)

如果你有三個不同的訊號(例如:位置、速度、加速度),想放在同一個視窗但「上下分開」顯示,請使用 subplot(m, n, p)

  • m:總共有幾列 (Row)
  • n:總共有幾欄 (Column)
  • p:現在要畫在第幾個位置
figure;

% 第一張小圖 (佔用上面)
subplot(2, 1, 1);           % 2列,1欄,畫在第1個位置
plot(t, position, 'b-');
title('位置響應');
ylabel('位置 (m)');
grid on;

% 第二張小圖 (佔用下面)
subplot(2, 1, 2);           % 2列,1欄,畫在第2個位置
plot(t, velocity, 'r-');
title('速度響應');
xlabel('時間 (s)');
ylabel('速度 (m/s)');
grid on;

6. 自動存檔 (輸出高品質 PNG 或 PDF)

畫完圖之後,可以使用 MATLAB 的存檔指令將當前的圖片(gcf,代表 Get Current Figure)自動存到你的資料夾中。

方法一:基本存檔 (saveas)

適合快速存檔,語法最簡單。

% 將當前視窗存成 PNG 圖檔
saveas(gcf, 'Simulink_Result.png');

% 將當前視窗存成 MATLAB 原始圖檔格式 (.fig),方便日後重新打開修改
saveas(gcf, 'Simulink_Result.fig');

方法二:輸出高畫質圖檔 (exportgraphics - 強烈推薦 ⭐)

這是 MATLAB 較新的指令(R2020a 之後支援),它會自動裁切掉圖片旁邊多餘的白邊,而且可以設定解析度(DPI),非常適合用來放在 Word 報告或論文裡!

% 1. 存成高解析度 PNG (設定解析度為 300 DPI)
exportgraphics(gcf, 'High_Quality_Result.png', 'Resolution', 300);

% 2. 存成向量圖 PDF (放大絕對不會失真,論文最愛)
exportgraphics(gcf, 'Vector_Result.pdf', 'ContentType', 'vector');