標籤:

您好,matlab我想把畫出的圖保存下來,怎麼做?

您好,matlab我想把畫出的圖保存下來,怎麼做?saveas(gcf, output, fig);saveas(gcf, output, bmp);saveas(get_param(demo, Handle), output, eps)裡面gcf是什麼意思啊,能隨便換嗎,我要是在一個.m文件里有很多畫圖,分別保存怎麼辦呢?謝謝~~~


謝邀。

gcf 是 Get Current Figure 的縮寫,返回當前圖像窗口的引用。當前圖像窗口,指的是如果你現在運行 plot 等類似命令時,圖像所畫在的那個窗口。更多信息,請查詢 help gcf.

在你原題里,gcf 可以換成任意一個已知的窗口引用。如果在函數中畫了多個圖像,最理想的方案是每次畫圖時保留其引用。例如:

hCircle = figure;
plot(sin(0:0.01:2*pi), cos(0:0.01:2*pi)); axis square

hRect = figure;
plot([-1 0 1 0 -1], [0 1 0 -1 0]); axis square

如果只希望代碼默默地運行,不要彈出圖像窗口,可在創建窗口時,將其設為隱藏。

hCircle = figure(Visible, off);
% plot circle.

等到需要保存圖像時,調用 saveas:

saveas(hCircle, circle, png)
saveas(hRect, rect, jpg)

如果圖像很多,可以使用循環。例如:

pic(1).h = hCircle;
pic(1).name = circle;
pic(1).fmt = png;

pic(2).h = hRect;
pic(2).name = rect;
pic(2).fmt = jpg;

for p = pic
saveas(p.h, p.name, p.fmt)
end

clear p

看上去代碼更長了是吧……不過看起來更清晰一點。


就是saveas(gcf,name,jpg)

你想保存figure(1),gcf就是1,想保存figure(2),gcf就是2

name是字元串,保存的文件名。比如你想保存100個畫,文件名是picture1.jpg到picture100.jpg,可以讓name=[picture num2str(i)];,i是循環變數


gcf就是現在的這張圖(current figure handle)可以換成別的。。。

譬如f = figure

saveas(f,name,jpg) %name是你要保存的圖的名字,寫成string(就是帶單引號的)

% jpg是圖片格式,可以換成別的

如果有很多個就寫個loop唄

for i = 1:n

f = figure(i)

saveas(f,name(i),jpg)

end


推薦閱讀:

機械的學生,MATLAB 應該學些什麼?
關於MATLAB圖像處理imshow函數涉及到的數據類型的思考
MATLAB和物聯網連載1:Internet of Things離你有多遠?5行MATLAB的距離
Matlab小練習:按斜線方向依次賦值矩陣
Cody簡介

TAG:MATLAB |