MATLAB生成多张figure以及自动保存
- 格式:docx
- 大小:151.89 KB
- 文档页数:3
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配图的一些常用设置的总结,包括对图片大小,位置,线条以及标注的一些设置,该文档可以提供一个快速参数的设置,更详细的设置可以查阅帮助文档。
目录图像显示位置尺寸调整和保存 (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的话,打印的时候还是正方形。
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保存图片的四种方法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图形保存以及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的路径所在。
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写出来的代码是在太混乱了。
算法程序,数据生成,以及图片绘画的.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中的figure函数
figure函数是MATLAB中用来创建新图形窗口的函数。
它的语法如下:
figure
figure(h)
figure('PropertyName', PropertyValue, ...)
figure('Numbered', 'off')
其中,参数h是一个整数,用来指定要在已有图形窗口中创建图形;
'PropertyName'和PropertyValue是一组用来设置图形窗口属性的名称和值;'Numbered'用来指定是否在图形窗口标题上显示图形的编号,默认为'on'。
示例用法:
1. 创建一个新的图形窗口
figure
2. 在已有图形窗口6中创建一个图形
figure(6)
3. 创建一个有特定属性的图形窗口
figure('Name', 'My Figure', 'Color', 'yellow')
以上代码将创建一个标题为"My Figure",背景颜色为黄色的图形窗口。
4. 创建没有编号的图形窗口
figure('Numbered', 'off')
以上代码将创建一个没有编号的图形窗口。
Matlab Figure图形保存以及Simulink中Scope窗口label1、我们使用Matlab绘制出数据的各种图形需要保存的时候,不少同学是直接用屏幕截图的办法来做的,但这样出来的图并不清晰,不便于后续应用和处理,并且往往不符合发表论文的要求,很多论文是要求用.eps 格式的图片的。
实际上,我们可以有下面两种更好的处理方法:(1)在论文里插入图片在Matlab的Figure窗口,点击菜单栏的Edit,选择Copy Figure,然后转到你的文档界面,把光标放到需要插入图片的位置,然后Ctrl+C,你就可以得到比较清晰的图片了。
需要注意的是,这时候的图片有相当一部分空白区域,你可以用word图片工具栏的‘裁剪’功能把图片空白区域消除掉。
另外,如果需要对图片的大小进行拉伸,最好不要直接用鼠标拖拉,这样容易导致图中的点线分布变形,可以右键点击图片,选择‘设置图片格式’,在‘大小’标签的‘缩放’栏里,设置图片的大小。
(2)直接保存Figure为了便于后续处理和应用,建议大家形成一个良好习惯,即把绘制所得的Figure窗口直接保存为.fig文件,以后你就可以多次打开它,对图像进行修改处理,例如加注标签(label)等,也可以打开.fig文件把所显示的图像转存为其它格式的文件,例如.eps、.jpg等。
2、在做Simulink仿真时,使用的Scope波形显示模块实际上也是一种Figure窗口,不过Matlab把Scope的菜单栏隐藏起来,只提供了几个有限的参数设置。
如果需要对Scope中的图加上坐标、更改界面背景色等,没有菜单栏就基本上无从下手了。
可以在打开你的mdl文件之后,在Matlab的命令行输入以下指令来恢复显示Scope的Figure 菜单栏:>> set(0,'ShowHiddenHandles','on');>> set(gcf,'menubar','figure');这样Scope窗口就如下所示:然后点击菜单栏的Edit ,可以选择Copy Figure 来保持波形图,也可以选择Figure Properties 来调整Scope 的各种图形属性,包括添加xlabel、ylabel、title,更改背景颜色,调整波形曲线的线型、粗细等等:P.S.:除了上面说的那两行指令外,在网上还找到一段相似的程序,不过我使用时Matlab提示第4行代码出现Error,不知是何原因,也贴在这里大家分析下吧,呵呵。
Matlab Figure图形保存以及Simu link中Scope窗口lab el1、我们使用Ma tlab绘制出数据的各种图形需要保存的时候,不少同学是直接用屏幕截图的办法来做的,但这样出来的图并不清晰,不便于后续应用和处理,并且往往不符合发表论文的要求,很多论文是要求用.eps 格式的图片的。
实际上,我们可以有下面两种更好的处理方法:(1)在论文里插入图片在Matla b的Fig ure窗口,点击菜单栏的Edit,选择Copy Figure,然后转到你的文档界面,把光标放到需要插入图片的位置,然后Ctrl+C,你就可以得到比较清晰的图片了。
需要注意的是,这时候的图片有相当一部分空白区域,你可以用wo rd图片工具栏的‘裁剪’功能把图片空白区域消除掉。
另外,如果需要对图片的大小进行拉伸,最好不要直接用鼠标拖拉,这样容易导致图中的点线分布变形,可以右键点击图片,选择‘设置图片格式’,在‘大小’标签的‘缩放’栏里,设置图片的大小。
(2)直接保存 Figure为了便于后续处理和应用,建议大家形成一个良好习惯,即把绘制所得的Figu re窗口直接保存为.fig文件,以后你就可以多次打开它,对图像进行修改处理,例如加注标签(label)等,也可以打开.fig文件把所显示的图像转存为其它格式的文件,例如.eps、.jpg等。
2、在做Simu link仿真时,使用的Sco pe波形显示模块实际上也是一种Figur e窗口,不过Matl ab 把Sc ope的菜单栏隐藏起来,只提供了几个有限的参数设置。
如果需要对S cope中的图加上坐标、更改界面背景色等,没有菜单栏就基本上无从下手了。
可以在打开你的mdl文件之后,在Matla b的命令行输入以下指令来恢复显示Scop e的Fig ure 菜单栏:>> set(0,'ShowHi ddenH andle s','on');>> set(gcf,'menuba r','figure');这样Scop e窗口就如下所示:然后点击菜单栏的Edit ,可以选择Copy Figure来保持波形图,也可以选择Figure Proper ties来调整 Scope的各种图形属性,包括添加 xlabel、ylabel、title,更改背景颜色,调整波形曲线的线型、粗细等等:。
figure matlab用法-回复Figure在Matlab中是一个非常重要的函数,用于创建和操作图形对象。
Figure函数允许用户将绘图窗口分成不同的图形区域,以方便同时显示多个图形并进行比较或分析。
在本文中,我们将深入探讨Figure函数的用法,并逐步回答几个与之相关的问题。
一、Figure函数的基本用法首先,让我们来了解一下Figure函数的基本用法。
在Matlab命令窗口中输入“figure”(不带参数)即可创建一个新的绘图窗口。
例如:figure这将打开一个空白的绘图窗口,供我们绘制图形或显示已有的图像。
二、创建具有子图的Figure对象接下来,让我们尝试创建一个具有子图的Figure对象。
在Matlab中,使用subplot函数可以将绘图窗口划分为不同的子图区域,每个子图区域可以显示一个独立的图形。
以下是一个示例:figuresubplot(2, 1, 1)plot(x, y1)subplot(2, 1, 2)plot(x, y2)在上述示例中,我们首先调用figure函数创建一个新的绘图窗口,然后使用subplot函数将该窗口划分为两个子图区域,其中subplot(2, 1, 1)表示第一个子图区域,subplot(2, 1, 2)表示第二个子图区域。
最后,我们使用plot函数在每个子图区域中绘制相应的图形。
三、Figure对象与图形属性操作Matlab的Figure对象不仅可以用于创建子图,还可以用于操作图形对象的属性。
例如,我们可以设置标题、坐标轴标签、图例等属性,以美化图形并增加可读性。
以下是一个示例:figureplot(x, y)title('示例图形')xlabel('X轴')ylabel('Y轴')legend('数据')在上述示例中,我们首先使用figure函数创建一个新的绘图窗口,然后使用plot函数绘制图形。
Matlab Figure图形保存以及Simulink中Scope窗口label1、我们使用Matlab绘制出数据的各种图形需要保存的时候,不少同学是直接用屏幕截图的办法来做的,但这样出来的图并不清晰,不便于后续应用和处理,并且往往不符合发表论文的要求,很多论文是要求用.eps 格式的图片的。
实际上,我们可以有下面两种更好的处理方法:(1)在论文里插入图片在Matlab的Figure窗口,点击菜单栏的Edit,选择Copy Figure,然后转到你的文档界面,把光标放到需要插入图片的位置,然后Ctrl+C,你就可以得到比较清晰的图片了。
需要注意的是,这时候的图片有相当一部分空白区域,你可以用word图片工具栏的‘裁剪’功能把图片空白区域消除掉。
另外,如果需要对图片的大小进行拉伸,最好不要直接用鼠标拖拉,这样容易导致图中的点线分布变形,可以右键点击图片,选择‘设置图片格式’,在‘大小’标签的‘缩放’栏里,设置图片的大小。
(2)直接保存Figure为了便于后续处理和应用,建议大家形成一个良好习惯,即把绘制所得的Figure窗口直接保存为.fig文件,以后你就可以多次打开它,对图像进行修改处理,例如加注标签(label)等,也可以打开.fig文件把所显示的图像转存为其它格式的文件,例如.eps、.jpg等。
2、在做Simulink仿真时,使用的Scope波形显示模块实际上也是一种Figure窗口,不过Matlab把Scope的菜单栏隐藏起来,只提供了几个有限的参数设置。
如果需要对Scope中的图加上坐标、更改界面背景色等,没有菜单栏就基本上无从下手了。
可以在打开你的mdl文件之后,在Matlab的命令行输入以下指令来恢复显示Scope的Figure 菜单栏:>> set(0,'ShowHiddenHandles','on');>> set(gcf,'menubar','figure');这样Scope窗口就如下所示:然后点击菜单栏的Edit ,可以选择Copy Figure 来保持波形图,也可以选择Figure Properties 来调整Scope 的各种图形属性,包括添加xlabel、ylabel、title,更改背景颜色,调整波形曲线的线型、粗细等等:。
Matlab中图⽚保存的四种⽅法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等格式。
Matlab绘图基础——⽤print函数批量保存图⽚到⽂件(Printfigureorsa。
⼀、⽤法解析print(figure_handle,'formats','-rnumber','filename')%将图形保存为formats格式,分辨率为600的(默认为72),最好指定的分辨率⼤⼀点,否则保存图形的效果较差.1.1. 分辨率-rnumberUse -rnumber to specify the resolution of the generated output.To set the resolution(分辨率) of the output file for a built-in MATLAB format, use the -r switch.l For example, -r300 sets the output resolution to 300 dots per inch(每英⼨300个点)The –r switch is also supported for Windows Enhanced Metafiles(), JPEG, TIFF and PNG files, but is not supported for Ghostscript raster formats(栅格⽂件).l For more information, see and.—— 来⾃matlab帮助“print”页中1.2. 输出图⽚的“格式”formats请参考本⽂末尾⼆、⽤法⽰例% Save the figure with the handle h to a PostScript file named Figure1, which can be printed later.H = figure; % 指定图⽚打印figure_handles% 若没有figure_handle,则默认print当前显⽰图⽚plot(1:4,5:8)print(h,'-dpng','-r200','Figure1') % 这三⾏代码就够⽤了2.1. 设置输出图⽚的“图像纵横⽐”When you set the axes Position to [0 0 1 1] so that it fills the entire figure, the aspect ratio is not preserved when you print because MATLAB printing software adjusts the figure size when printing according to the figure's property. To preserve the image aspect ratio(图像纵横⽐)when printing, set the figure's 'PaperPositionMode' to 'auto' from the command line.set(gcf,'PaperPositionMode','auto')% Setting the current figure's (gcf) PaperPositionMode to auto enables% you to resize the figure window and print it at the size you see on the screen.举例:surf(peaks);shading interp% 画图,shading使图像美观axis off% 不显⽰坐标轴set(gcf,'PaperPositionMode','auto'); % 设置图像纵横⽐print('-dpng','-r200','a'); % 保存图⽚,名为a——来⾃matlab帮助 Printing Images 2.2. Batch Processing(图⽚保存“批处理”)filenameYou can use the function form of print to pass variables containing file names. For example, this for loop uses file names stored in a cell array to create a series of graphs and prints each one with a different file name:fnames = {'file1', 'file2', 'file3'};for k=1:length(fnames)surf(peaks);shading interpprint('-dtiff','-r600',fnames{k}) % fnames is a cell of string arrays so each element is a stringend————来⾃matlab帮助“print”页末注:如果你不能调整输出分辨率和⽂件格式,可能是"Printing and Exporting without a Display"问题,具体查看帮助“print”页———分割线————————————————————————————1.2. 输出图⽚的“格式”formatsThe following table shows the supported output formats for exporting from figures and the switch settings to use. In some cases, a format is available both as a MATLAB output filter and as a Ghostscript output filter. All formats except for EMF are supported on both Windows and UNIX platforms.Graphics Format Bitmap or Vector(⽮量)Print CommandOption StringMATLAB orGhostscriptBMP monochrome BMP Bitmap-dbmpmono Ghostscript BMP 24-bit BMP Bitmap-dbmp16m Ghostscript BMP 8-bit (256-color) BMP (this format uses a fixed colormap)Bitmap-dbmp256Ghostscript BMP 24-bit Bitmap-dbmp MATLAB EMF Vector-dmeta MATLAB EPS black and white Vector-deps MATLAB EPS color Vector-depsc MATLAB EPS Level 2 black and white Vector-deps2MATLAB EPS Level 2 color Vector-depsc2MATLAB HDF 24-bit Bitmap-dhdf MATLAB ILL (Adobe Illustrator)Vector-dill MATLAB JPEG 24-bit Bitmap-djpeg MATLAB PBM (plain format) 1-bit Bitmap-dpbm Ghostscript PBM (raw format) 1-bit Bitmap-dpbmraw Ghostscript PCX 1-bit Bitmap-dpcxmono Ghostscript PCX 24-bit color PCX file format, three 8-bit planes Bitmap-dpcx24b Ghostscript PCX 8-bit newer color PCX file format (256-color)Bitmap-dpcx256Ghostscript PCX Older color PCX file format (EGA/VGA, 16-color)Bitmap-dpcx16Ghostscript PDF Color PDF file format Vector-dpdf Ghostscript PGM Portable Graymap (plain format)Bitmap-dpgm Ghostscript PGM Portable Graymap (raw format)Bitmap-dpgmraw Ghostscript PNG 24-bit Bitmap-dpng MATLAB PPM Portable Pixmap (plain format)Bitmap-dppm Ghostscript PPM Portable Pixmap (raw format)Bitmap-dppmraw Ghostscript SVG Scalable Vector Graphics (For Simulink Models Only)Vector-dsvg MATLAB TIFF 24-bit Bitmap-dtiff or -dtiffn MATLAB TIFF preview for EPS files Bitmap-tiff。
MATLAB图⽚批量读取并保存批量读取图⽚1。
指定路径下单个⽂件夹data中所有图像file_path = '.\data\';% 图像⽂件夹路径img_path_list = dir(strcat(file_path,'*.jpg'));%获取该⽂件夹中所有jpg格式的图像img_num = length(img_path_list);%获取图像总数量if img_num > 0 %有满⾜条件的图像for j = 1:img_num %逐⼀读取图像image_name = img_path_list(j).name;% 图像名image = imread(strcat(file_path,image_name));fprintf('%d %d %s\n',i,j,strcat(file_path,image_name));% 显⽰正在处理的图像名%图像处理过程省略endend注,上述的代码只能读取data⽂件夹中的图像,假设data中包含⼦⽂件夹,不能读取⼦⽂件夹中的图像。
2. 指定路径下多个⽂件夹中所有图像,该代码可以读取⽂件夹data中及data的所有⼦⽂件夹中的图像。
length_p = size(p,2);%字符串p的长度path = {};%建⽴⼀个单元数组,数组的每个单元中包含⼀个⽬录temp = [];for i = 1:length_p %寻找分割符';',⼀旦找到,则将路径temp写⼊path数组中if p(i) ~= ';'temp = [temp p(i)];elsetemp = [temp '\']; %在路径的最后加⼊ '\'path = [path ; temp];temp = [];endendclear p length_p temp;%⾄此获得data⽂件夹及其所有⼦⽂件夹(及⼦⽂件夹的⼦⽂件夹)的路径,存于数组path中。
"figure"是MATLAB中用来创建和管理图形窗口的重要函数。
在本文中,我们将深入探讨figure的原理和功能,从简单到复杂地解释其背后的原理,并探讨如何利用figure函数创建各种类型的图形。
1. figure函数的基本原理figure函数在MATLAB中的基本原理是创建一个新的图形窗口,并将焦点切换到该窗口上。
这意味着在同一时间内可以同时显示多个图形,而不会相互覆盖。
figure函数还可以通过设置不同的属性值,如窗口大小、标题、背景色等,以及调整显示位置等,来实现对图形窗口的灵活管理。
2. figure函数的基本功能figure函数不仅可以用来创建新的图形窗口,还可以在一个图形窗口中显示多个子图形。
通过子图形的分割和管理,可以实现复杂图形的同时展示,并轻松将不同的图形进行比较和分析。
在图形窗口中,还可以通过鼠标交互式地调整图形的显示和参数,以更好地呈现数据的特征和规律。
3. figure函数的高级功能除了上述基本功能外,figure函数还提供了许多高级功能,如创建3D 图形、动态更新图形、图形叠加、保存和导出图形等。
通过这些高级功能,可以实现更加复杂和丰富的数据可视化和分析,为科学研究和工程应用提供了强大的支持。
总结回顾:通过本文的深入探讨,我们对figure函数的原理和功能有了更加深入的了解。
了解了它的基本原理和功能之后,我们还探讨了其高级功能,并且对如何利用figure函数进行数据可视化和分析有了更清晰的认识。
figure函数作为MATLAB的重要组成部分,为我们进行科学研究和工程实践提供了方便和高效的图形展示和分析工具。
个人观点和理解:在我的实际工作中,我经常使用figure函数来展示和分析实验数据,通过合理设置图形窗口的样式和参数,以及灵活使用子图形功能,可以更清晰地呈现数据的特征和规律。
figure函数的高级功能也为我提供了丰富的操作和展示效果,使得我的工作能够更加高效和专业。
1、我们使用Matlab绘制出数据的各种图形需要保存的时候,不少同学是直接用屏幕截图的办法来做的,但这样出来的图并不清晰,不便于后续应用和处理,并且往往不符合发表论文的要求,很多论文是要求用 .eps 格式的图片的。
实际上,我们可以有下面两种更好的处理方法:(1)在论文里插入图片在Matlab的Figure窗口,点击菜单栏的Edit,选择Copy Figure,然后转到你的文档界面,把光标放到需要插入图片的位置,然后Ctrl+C,你就可以得到比较清晰的图片了。
需要注意的是,这时候的图片有相当一部分空白区域,你可以用word图片工具栏的‘裁剪’功能把图片空白区域消除掉。
另外,如果需要对图片的大小进行拉伸,最好不要直接用鼠标拖拉,这样容易导致图中的点线分布变形,可以右键点击图片,选择‘设置图片格式’,在‘大小’标签的‘缩放’栏里,设置图片的大小。
(2)直接保存 Figure为了便于后续处理和应用,建议大家形成一个良好习惯,即把绘制所得的Figure 窗口直接保存为.fig文件,以后你就可以多次打开它,对图像进行修改处理,例如加注标签(label)等,也可以打开.fig文件把所显示的图像转存为其它格式的文件,例如.eps、.jpg等。
2、在做Simulink仿真时,使用的Scope波形显示模块实际上也是一种Figure 窗口,不过Matlab把Scope的菜单栏隐藏起来,只提供了几个有限的参数设置。
如果需要对Scope中的图加上坐标、更改界面背景色等,没有菜单栏就基本上无从下手了。
可以在打开你的mdl文件之后,在Matlab的命令行输入以下指令来恢复显示Scope的Figure菜单栏:>> set(0,'ShowHiddenHandles','on');>> set(gcf,'menubar','figure');这样Scope窗口就如下所示:然后点击菜单栏的 Edit ,可以选择 Copy Figure 来保持波形图,也可以选择Figure Properties 来调整 Scope 的各种图形属性,包括添加 xlabel、ylabel、title,更改背景颜色,调整波形曲线的线型、粗细等等:P.S.:除了上面说的那两行指令外,在网上还找到一段相似的程序,不过我使用时Matlab提示第4行代码出现Error,不知是何原因,也贴在这里大家分析下吧,呵呵。
matlab figure table用法-回复Matlab中的Figure和Table用法在Matlab中,Figure和Table是两个非常常用的绘图和数据展示工具。
Figure主要用于绘制各种类型的图形,包括线图、柱状图、散点图等;而Table则用于展示数据,以表格形式呈现。
本文将以中括号内的内容为主题,一步一步回答关于Matlab中Figure和Table的用法。
一、Figure的基本用法在Matlab中,Figure用于创建一个新的图形窗口。
通过简单的代码即可创建并配置一个Figure对象,然后在该对象上绘制所需的图形。
1. 创建一个Figure对象可以通过在命令窗口中直接输入“figure”,来创建一个新的Figure对象。
Matlab将自动生成一个新的图形窗口,并将其设为当前活动窗口。
2. 在Figure上绘图要在Figure上绘制图形,可以使用Matlab的绘图函数,比如“plot”函数用于线图,或是“scatter”函数用于散点图。
在绘制之前,可以先使用“hold on”命令,以保持原有的图形,并添加新的绘图内容。
3. 配置Figure属性Figure对象有很多可配置的属性,包括标题、坐标轴标签、颜色等。
可以通过使用各种属性设置函数来修改Figure对象的属性值。
比如,“title”函数用于设置标题,“xlabel”和“ylabel”函数用于设置坐标轴标签,“colormap”函数用于设置颜色映射。
二、Table的基本用法在Matlab中,Table对象用于存储和处理数据,以表格的形式进行展示。
Table可以存储不同类型的数据,包括数字、字符、逻辑值等,并能够快速进行数据的查询、筛选、排序等操作。
1. 创建一个Table对象可以通过各种途径来创建一个Table对象,比如从文件中读取数据,将数组转换为Table对象,或是手动创建一个空的Table对象。
2. 将数据插入到Table中通过使用“addvars”函数,可以将已有的数组或变量插入到Table中。
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@
盼回信!。