matlab的繪圖和可視化能力是不用多說的,可以說在業內是家喻戶曉的。Matlab提供了豐富的繪圖函數,比如ez**系類的簡易繪圖函數,surf、mesh系類的數值繪圖函數等幾十個。另外其他專業工具箱也提供了專業繪圖函數,這些值得大家深入學習好久。 今天我只是討論下如何保存這些由Matlab繪制出來的圖像呢?當然借助第三方截圖軟件,就算了! 1、直接另存為 在figure中使用菜單file——>saveas——>選擇保存形式(fig,eps,jpeg,gif,png,bmp等),這個的缺點是另存為的圖像清晰度有很大的犧牲 2、復制到剪貼板 在figure中使用菜單edit——>copy figure——>此時圖像就復制到剪貼板了,我們可以借助其他軟件(比如:繪圖板)保存為需要的圖片 3、saveas命令格式 Matlab提供直接的saveas函數可以將指定figure中的圖像或者simulink中的框圖進行保存,相當於【文件】中的【另存為】 % saveas(figure_handle,filename,fileformat) plot(1:10); saveas(gcf,‘myfig.jpg’) 復制代碼 4、print函數 print函數原本不是用來進行圖像保存了,而是操作打印機的,但是這里我們可以借用下 % print(figure_handle,fileformat,filename) x=-pi:2*pi/300:pi; y=sin(x); plot(x,y); %Matlab根據文件擴展名,自動保存為相應格式圖片,另外路徑可以是絕對也可以是相對 print(gcf,'-dpng','abc.png') %保存為png格式的圖片到當前路徑 復制代碼 另外有網友向我反映,有時我們只有一個Matlab圖像的fig文件,但沒有該圖像的相關坐標數據,那我們如何獲取fig圖像的數據呢,這個其實比較好辦 1、將那個fig文件保存到Matlab的搜索路徑下,雙擊打開它 2、在Matlab的command中輸入如下內容 h=get(gcf,'chidren') data=get(h,{'xdata','ydata','zdat a'}) %此時圖形中所有圖像的三維數據x,y,z將會以結構體的形式保存到data變量中了 |
一種是出來圖形窗口后手動保存(這兒又可以分兩種):
1 直接從菜單保存,有fig,eps,jpeg,gif,png,bmp等格式。
2 edit------〉copy figure,再粘貼到其他程序。
另一種是用命令直接保存(這里也有兩種):
1 用saveas命令保存圖片。
saveas的三個參數:
(1)圖形句柄,如果圖形窗口標題欄是“Figure 3”,則句柄就是3.
(2)文件名。
(3)單引號字符串,指定存儲格式。
例:
saveas(gcf,['D:\MATLAB7\work','yanbao',num2str(k),'.jpg']);
2 使用plot函數后緊接着用print函數。
print的三個參數:
(1)圖形句柄,如果圖形窗口標題欄是“Figure 3”,則句柄就是3.
(2)單引號字符串,指定存儲格式。
用gcf可以獲取當前窗口句柄。
png格式:'-dpng'
jpeg: '-djpeg',
tiff: '-dtiff'
bmp: '-dbitmap'
(3)文件名。
例:
>> x=-pi:2*pi/300:pi;
>> y=sin(x);
>> plot(x,y);
>> print(gcf,'-dpng','abc.png') % 保存為png格式的圖片。
>> figure(2) % 新建一個句柄為2的圖形窗口。
>> plot(x,cos(x)); % 在句柄為2的圖形窗口上畫圖。
>> grid
>> print(2,'-djpeg','C:\abc.jpeg'); %將句柄為2的圖形保存為jpeg/jpg格式的圖片,文件名為'C:\abc.jpeg'。