MATLAB生成多张figure以及自动保存
matlab保存图片的几种方式

matlab保存图⽚的⼏种⽅式最近在写毕业论⽂, 需要保存⼀些⾼分辨率的图⽚. 下⾯介绍⼏种MATLAB保存图⽚的⽅式.⼀. 直接使⽤MATLAB的保存按键来保存成各种格式的图⽚你可以选择保存成各种格式的图⽚, 实际上对于⼀般的图⽚要求⽽⾔, 该⽅法已经⾜够了.⼆. 使⽤saveas函数该函数实际上类似于 “另存为” 的选项,并且忽略图⽚的背景⼤⼩等等,按照默认的属性存储.⼀般格式为为saveas(fig, filename, formattype)clearclcx = 0:0.01:2*pi;y = sin(x);plot(x, y)xlabel('x')ylabel('y')title('y = Sin(x)')saveas(gcf, 'test', 'png')这的可选项有png, jpg, bmp等等, 以及⽮量图格式, eps, svg, pdf等等.三. 使⽤imwrite函数imwrite 实际上是保存⼀个描述图⽚的数组, 使⽤的⼀般格式为imwrite(A, filename)clearclcx = 0:0.01:2*pi;y = sin(x);plot(x, y)xlabel('x')ylabel('y')title('y = Sin(x)')f = getframe(gcf);imwrite(f.cdata, 'test.png'); 该函数可以⽤于保存为png, jpg, bmp等等格式, 但是不可以保存为eps, svg, pdf 等⽮量图格式.该函数还可以⽤于保存gif.clearclcn = 1:10;nImages = length(n);x = 0:0.01:1;im = cell{nImages, 1};figure;for idx = 1:nImagesy = sin(2*pi*x*idx);plot(x,y,'LineWidth',3)title(['y = sin(2n\pix), n = ' num2str(n(idx)) ])drawnowframe = getframe(gcf);im{idx} = frame.cdata;endclose;filename = 'test.gif';for idx = 1:nImages[A,map] = rgb2ind(im{idx},256);if idx == 1imwrite(A,map,filename,'gif','LoopCount',Inf,'DelayTime',1);elseimwrite(A,map,filename,'gif','WriteMode','append','DelayTime',1);endend四. 使⽤ printf 函数clearclcx = 0:0.01:2*pi;y = sin(x);plot(x, y)xlabel('x')ylabel('y')title('y = Sin(x)')printf(gcf,'-dpng','test.png') 。
Matlab 绘图并自动保存论文格式

Matlab 绘图并自动保并设置本文档是写论文过程中对论文matlab配图的一些常用设置的总结,包括对图片大小,位置,线条以及标注的一些设置,该文档可以提供一个快速参数的设置,更详细的设置可以查阅帮助文档。
目录图像显示位置尺寸调整和保存 (1)尺寸调整 (1)保存设置格式和显示格式 (1)plot 和plotyy 绘图并自动保存实例 (3)标注设置 (4)xlabel,ylabel,title (4)图像显示位置尺寸调整和保存尺寸调整Screen => figure => axesMatlab是面向对象的。
最高等级的对象是screen,它定义了figure可以用的最大szie;screen下面是figue,它是画图的时候跳出来的对话窗口,如果figure变化,screen是不会跟着变化的,但screen变化的话,figure就要跟着变化了;figure下面是axes,它是那个窗口里面你要画的东西,axes的大小和位置取决于figure,如果你放大缩小figure的大小的话,里面的图线也会跟着变化的。
axes 可以通过set(gca,'position',[dx,dy,width,height]);其中dx 表示axes 到figure 左边界的距离,dy 表示 axes 到 figure 底边的距离,width表示axes的宽度,height表示axes的高度。
这些变量是根据figure的尺寸归一化到1的,用小数表示。
figure 可以通过set(gcf,'position',[px,py,width,height]);其中(px,py)表示figure左下的坐标,width表示figure的宽度,height表示figure的高度。
这里变量默认是以像素为单位,也可以通过’unit’进行设置.保存设置格式和显示格式如果仅设置position的话,打印的时候还是正方形。
【谷速软件】matlab源码-保存多个图像 getframe、imwrite、sprintf、num2str

clear;clc;clf;x=0:pi/100:2*pi;y=sin(x);plot(x,y)set(gcf,'color',[1 1 1]) %设置背景色为白色title('测试图像保存')F=getframe(gcf); % 获取整个窗口内容的图像F1=getframe; % 获取坐标轴为界的图像imwrite(F.cdata,'test1.png')imwrite(F1.cdata,'test2.png')=======================getframe获得的是一个架构struct类型的数据,其中cdata子域的内容才可以用imwrite内容保存,用F.cdata表示getframe(gcf) 即get current figure,获得窗口内图像,包含legend、title以及label。
如果不添加gcf,默认为gca(get current axis)。
imwrite 可以保存jpg、png等格式图像,gif是7.0添加的,但是好像没办法保存为动画,只能保存第一帧。
与在图像界面直接利用复制,或用file>save as...保存不同的是,imwrite的背景色为窗口实际颜色,默认为灰色(RGB表示为[.7 .7 .7]),若想保留白色背景图,需添加例子中的set gcf color 命令。
=====================================================保存多个图像时,顺序命名图像文件名称需用到num2str 或sprintf命令num2str(kk) 将数字kk保存为字符sprintf('格式',kk)将kk保存为需要格式的字符,尤其是图像多于10个名称需要前面补0时很好用Note:保存多个图像时不要乱动电脑、切换窗口,getframe保存当前图像所在位置的屏幕图像,相当于截屏。
(完整版)matlab保存图片的四种方法

matlab保存图片的四种方法1 从菜单保存〈<回目录可以保存为fig,eps,jpeg,gif,png,bmp等格式。
2 复制粘贴 <<回目录edit-—-———〉copy figure,再粘贴到其他程序,如word3 saveas函数〈〈回目录saveas(gca,filename,fileformat)不过此函数不好用常常出错4 print函数〈<回目录〉〉 x=—pi:2*pi/300:pi;〉〉 y=sin(x);>〉 plot(x,y);〉> print(gcf,'-dpng','abc。
png')%保存为png格式的图片. 〉〉 pwdD:\Matlab\work>〉 dir〉〉 % 现在到 D:\Matlab\work 应该能找到图片 abc.png 了〉> figure(2) % 新建一个句柄为2的图形窗口。
〉〉 plot(x,cos(x)); % 在句柄为2的图形窗口上画图。
>> grid>> print(2,’—djpeg’,’D:\abc.jpeg’); %将句柄为2的图形保存为jpeg/jpg格式的图片,>> %文件名为'D:\abc。
jpeg’。
4。
2 用法:print(图形句柄,存储格式,文件名);〈<回目录图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3.用gcf可以获取当前窗口句柄. 指定存储格式。
常用的有:png格式:‚-dpng‘ (推荐这一种,与bmp格式一样清晰,文件也不大)jpeg: ‚-djpeg‘(文件小,较清晰)tiff: ‚—dtiff‘bmp: ‚—dbitmap‘(清晰,文件极大)gif: ‚-dgif‘(文件小但不清晰)文件名在matlab中自动保存plot图像的程序Step 1. 先使所画的图最大化,即占满整个屏幕scrsz = get(0,’ScreenSize');figure1=figure('Position',[0 30 scrsz(3) scrsz(4)-95]);或者(下面这种情况会把windows系统下面的任务栏也保存到图片中,不太好)scrsz = get(0,’ScreenSize’);figure1=figure(’Position’,[0 0 scrsz(3) scrsz(4)-66]);% Step 2. 生成数据并画图x=rand(100,1);plot(x);saveas(gcf,’filename’,'bmp’);saveas(gcf,'filename',’emf’);saveas(gcf,'filename’,’jpg');% Step 3. 清理现场clear all; clc; close all;下面的代码可以创建一个大小为整个屏幕的四分之一,位置在屏幕在左上角的一个figure对像,使用root对象的ScreenSize属性来取得屏幕的尺寸,ScreenSize是由四个元素组成的数据:[left,bottom,width,height])。
Matlab Figure坐标调节及文件保存

Matlab Figure图形保存以及Simulink中Scope窗口坐标标注(label)的设置1、我们使用M a t l a b绘制出数据的各种图形需要保存的时候,不少同学是直接用屏幕截图的办法来做的,但这样出来的图并不清晰,不便于后续应用和处理,并且往往不符合发表论文的要求,很多论文是要求用.eps格式的图片的。
实际上,我们可以有下面两种更好的处理方法:(1)在论文里插入图片在M a t l a b的Figure窗口,点击菜单栏的E d i t,选择Copy Figure,然后转到你的文档界面,把光标放到需要插入图片的位置,然后Ctrl+C,你就可以得到比较清晰的图片了。
需要注意的是,这时候的图片有相当一部分空白区域,你可以用w o r d图片工具栏的‘裁剪’功能把图片空白区域消除掉。
另外,如果需要对图片的大小进行拉伸,最好不要直接用鼠标拖拉,这样容易导致图中的点线分布变形,可以右键点击图片,选择‘设置图片格式’,在‘大小’标签的‘缩放’栏里,设置图片的大小。
(2)直接保存Figure为了便于后续处理和应用,建议大家形成一个良好习惯,即把绘制所得的Figure窗口直接保存为.fig文件,以后你就可以多次打开它,对图像进行修改处理,例如加注标签(label等,也可以打开.fig文件把所显示的图像转存为其它格式的文件,例如.eps、.jpg等。
2、在做Simulink仿真时,使用的S c o p e波形显示模块实际上也是一种Figure窗口,不过Matlab把Scope的菜单栏隐藏起来,只提供了几个有限的参数设置。
如果需要对Scope中的图加上坐标、更改界面背景色等,没有菜单栏就基本上无从下手了。
可以在打开你的mdl文件之后,在Matlab的命令行输入以下指令来恢复显示S c o p e的Figure菜单栏:>> set(0,'ShowHiddenHandles','on');>> set(gcf,'menubar','figure');Scope窗口就如下所示:然后点击菜单栏的Edit,可以选择CopyFigure来保持波形图,也可以选择FigureProperties来调整S c o p e的各种图形属性,包括添加x l a b e l、y l a b e l、title,更改背景颜色,调整波形曲线的线型、粗细等等:P.S.:除了上面说的那两行指令外,在网上还找到一段相似的程序,不过我使用时M a t l a b提示第4行代码出现E r r o r,不知是何原因,也贴在这里大家分析下吧,呵呵。
如何为matlab添加工具包 (自动保存的)

为Matlab添加工具包我电脑上matlab的路径所在。
D:\Program Files\MATLAB\R2012a\toolbox\mbc\mbcview\@cgtools\@inversionpane首先说说添加到matlab搜索路径好处:1 对n——你只需要存储一个副本,就可以在其他地方使用。
具体来说,假设你在数据盘D上新建了两个目录abc和def,这两个工程(每个目录下的所有程序相应地称为一个工程)都需要调用同一个(些)函数(简称工具箱),这时候,如果你没有把该工具箱添加到matlab的搜索路径下,则需要分别把工具箱中所有用到的文件都复制到目录abc和def下才能正确运行。
这显然浪费空间,所以,matlab提供了一个搜索路径(默认在matlab安装目录下的toolbox中),只要把工具箱对应的整个文件夹复制到搜索路径对应的目录下,并且通知matlab一声(把该路径正确添加到搜索路径中),就可以在abc和def中使用这个工具箱了(即无论你的工程文件在哪个目录(有效的目录)下都可以访问这个工具箱中的函数)。
下面就以matlab安装目录下的toolbox目录作为默认的添加路径进行详细说明。
1. 如何添加工具箱?以下是添加工具箱的方法:(论坛很多人转载过,这里就不作区分了,下面的举例也一样)如果是Matlab安装光盘上的工具箱,重新执行安装程序,选中即可。
如果是单独下载的工具箱,则需要把新的工具箱(以下假设工具箱名字为svm)解压到toolbox目录下,然后用addpath或者pathtool把该工具箱的路径添加到matlab的搜索路径中,最后用which newtoolbox_command.m来检验是否可以访问。
如果能够显示新设置的路径,则表明该工具箱可以使用了。
具体请看工具箱自己代的README文件。
1.1 举例:要添加的工具箱为svm,则解压后,里边有一个目录svm,假设matlab安装在D:/MATLAB6p5,将svm目录拷贝至D:/MA TLAB6p5/toolbox,然后运行matlab,在命令窗口输入addpath D:/MATLAB6p5/toolbox/svm回车,来添加路径。
matlab生成多张figure以及自动保存

MATLAB生成多张figure以及自动保存最近开始做毕业论文了。
在整理以前做过的诸多论文实验的时候,发现以前用MATLAB写出来的代码是在太混乱了。
算法程序,数据生成,以及图片绘画的.m文件都放在一个目录下。
不要说拿给别人看,就连我自己时间久了都搞不清楚哪种图片是哪个MATLAB程序生成的。
MATLAB没有Visual C++, Java那正规软件开发环境的工程概念,所以人工管理比较麻烦。
一般外人拿到一个论文的实验程序,最简单的,就是拿到一个入口程序,能够自动跑所有的实验程序,并且生成所有的实验图片。
这样,他就至少可以从这个入口程序一步一步跟踪进去,搞明白这一堆.m是什么东西。
那么有个关键问题,如何在一个程序里面生成多个figure呢?查了一下网上,有通过subplot方法实现的。
不过这个方法似乎不太好,因为它其实是将多个figure嵌到一个figure 里面,那么最终还是得一个个分开才能贴到论文里面。
下面是我论文里面的一个例子:function figure_wages()h=figure(1);figure_SLICE();saveas(h,'figure_wages_SLICE.fig');h=figure(2);figure_CARE();saveas(h,'figure_wages_CARE.fig');end这里我用过两个算法在同一块数据上进行训练,最后结果就生成下图两个figure了。
并且调用saveas函数可以实现自动把这两个figure保存到磁盘的.fig文件。
这里的h=figure(1)目的就是制定当前的默认显示的Figure的ID号,并且返回给句柄h。
PS:这里使用的数据都是真实的个人收入数据,其中另外2个维度分别是学历和工作经历。
大家看得出来,这些是在一个平面上的吗?分享到:4楼dragonworrior 2011-04-07 10:05发表[回复]3楼andysun001 2010-03-10 13:56发表[回复]2楼baltam 2009-11-12 21:58发表[回复]其实,如果你是想产生图片,并插入到论文中。
Matlab 保存多个图像 getframe、imwrite、sprintf、num2str、doc

2010-11-17
主人:top9
Matlab 保存多个图像 getframe、imwrite、sprintf、num2str、do
[发送私信] [加为好友] [关注]
友情推荐
一次性解决腰椎颈椎疼痛 国家865重点项目,顶 级专家协调合作 15天6 步解决腰椎颈椎问题恢复 青春活力
Graph digitizing Digitize any plot into (x,y)-data. Automatically! Free trial.
imwrite 可以保存jpg、png等格式图像,gif是7.0添加的,但是好像
与在图像界面直接利用复制,或用file>save as...保存不同的是, (RGB表示为[.7 .7 .7]),若想保留白色背景图,需添加例子中的
=====================================================
据说很准的测试 10月25日------29日一周短线以及波段. Novell PlateSpin Forgeபைடு நூலகம்漫画系列
[微博]IPAD该不该被征高额关税 南方金砖四国现正发售
[微博]小贩对菜价上涨的超强分 财富人生 平安相伴
最新读者
luckz
发表评论
大 名:
top9
(不
网 址:
/top99/default.html
=======================
getframe获得的是一个架构struct类型的数据,
其中cdata子域的内容才可以用imwrite内容保存,用F.cdata表示
getframe(gcf) 即get current figure,获得窗口内图像,包含lege 为gca(get current axis)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB生成多张figure以及自动保存
最近开始做毕业论文了。
在整理以前做过的诸多论文实验的时候,发现以前用MATLAB写出来的代码是在太混乱了。
算法程序,数据生成,以及图片绘画的.m文件都放在一个目录下。
不要说拿给别人看,就连我自己时间久了都搞不清楚哪种图片是哪个MATLAB程序生成的。
MATLAB没有Visual C++, Java那正规软件开发环境的工程概念,所以人工管理比较麻烦。
一般外人拿到一个论文的实验程序,最简单的,就是拿到一个入口程序,能够自动跑所有的实验程序,并且生成所有的实验图片。
这样,他就至少可以从这个入口程序一步一步跟踪进去,搞明白这一堆.m是什么东西。
那么有个关键问题,如何在一个程序里面生成多个figure呢?查了一下网上,有通过subplot方法实现的。
不过这个方法似乎不太好,因为它其实是将多个figure嵌到一个figure 里面,那么最终还是得一个个分开才能贴到论文里面。
下面是我论文里面的一个例子:function figure_wages()
h=figure(1);
figure_SLICE();
saveas(h,'figure_wages_SLICE.fig');
h=figure(2);
figure_CARE();
saveas(h,'figure_wages_CARE.fig');
end
这里我用过两个算法在同一块数据上进行训练,最后结果就生成下图两个figure了。
并且调用saveas函数可以实现自动把这两个figure保存到磁盘的.fig文件。
这里的h=figure(1)目的就是制定当前的默认显示的Figure的ID号,并且返回给句柄h。
PS:这里使用的数据都是真实的个人收入数据,其中另外2个维度分别是学历和工作经历。
大家看得出来,这些是在一个平面上的吗?
分享到:
4楼dragonworrior 2011-04-07 10:05发表[回复]
3楼andysun001 2010-03-10 13:56发表[回复]
2楼baltam 2009-11-12 21:58发表[回复]
其实,如果你是想产生图片,并插入到论文中。
在matlab中,可以使用,hgexport(h,filename),函数。
这个h,就是图形句柄。
输出格式呢?这个取决于你的figure的参数,如果renderer 是Painters renderer ,那么输出metafile,也就是eps格式. 它直接产生eps 格式的图片,eps可以直接插入到latex 文档中!
如果用的是ZBuffer 或者OpenGL renderer则输出bmp格式.
其实,如果是插入到论文,用saveas函数,其输出格式不一定要fig格式,它支持常见的图片1楼kinpuo 2009-06-14 11:21发表[回复][引用][举报]
您好:
请教你两个问题,1保存图形为什么写成function figure_wages()函数的形式。
2 figure_SLICE(),figure_CARE();语句的作用是什么?
我的Email:jinpuo@
盼回信!。