MATLAB Plot 語法速查表 (針對 Simulink 模擬結果)
這是一份專為 Simulink 數據繪圖整理的 MATLAB 語法大全。假設 Simulink 回傳的物件為 out,且你在 To Workspace 設定的變數名稱為 sim_result。
1. 基本起手式:提取資料與繪圖
如果你的 Simulink To Workspace 儲存格式 (Save format) 是設定為 Array:
% 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');