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等格式。

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‘。

转自 http://www.cnblogs.com/nktblog/archive/2012/07/24/2606652.html  (侵删)

时间: 2024-11-05 11:43:06

matlab的绘图保存的相关文章

Matlab中图片保存的5种方法

matlab的绘图和可视化能力是不用多说的,可以说在业内是家喻户晓的. Matlab提供了丰富的绘图函数,比如ez**系类的简易绘图函数,surf.mesh系类的数值绘图函数等几十个.另外其他专业工具箱也提供了专业绘图函数,这些值得大家深入学习好久. 今天我只是讨论下如何保存这些由Matlab绘制出来的图像呢?当然借助第三方截图软件,就算了! 1.使用imwrite 函数 如图像是img,则可以使用 imwrite(img,'result.jpg'); 这种方法保存图像大小和显示的大小事一样的.

C++MFC编程笔记day07 MFC单文档绘图保存、多文档绘图保存

完善绘图例子(day06中的),加上保存功能 1 设计和编写图形类 CShape 1.1 成员变量 CPoint m_ptBegin; CPoint m_ptEnd; UINT m_nType; 1.2 支持序列化 1.2.1 继承自CObject 1.2.2 添加序列化的声明宏和实现宏 1.2.3 重写虚函数Serilize(),在函数中,完成成员变量的序列化 2 由于保存多个图形,引入MFC的集合类CObArray,保存的是CObject 对象的地址. 3 图形数据需要保存到文档类中,在该类

MATLAB——PLOT绘图

MATLAB——PLOT绘图 格式化绘图: 1.color: b g  r c m y k w blue green red  cyan magenta yellow black white 2.type of coordinate point . o x +  * s d v ^ < > p h point  circle x-mark plus star square diamond triangle (down) triangle (up) triangle (left) riangle

matlab ( octave ) imwrite 保存图像详解

刚刚写了imshow, 想了想发现imwrite和imshow是完全一致的, 所以根据上篇文章简单写写imwrite用法. 上篇文章链接: http://blog.csdn.net/watkinsong/article/details/38535341 采用图像: imwrite() 中, 如果参数为uint8类型, 那么期待的参数像素值范围为0-255, 如果参数矩阵为double类型, 那么期待的像素值范围为0-255. 在imwrite中, 如果你将读取的图像转换为double类型, 直接

解决Matlab画图直接保存.eps格式而导致图不全的问题

Matlab确是一款简单方便的工具,使用此工具绘图也是我们常用的一种手段,可是如果我们想将此图片保存成.eps格式并应用于latex中,就有可能会出现.eps格式的图片显示不全的问题,这个着实让我们头疼.今天,经过查阅资料,发现了一种方法,现将此方法具体化并分享给大家.如果还有更简单的方法,还请赐教~ 首先,打开目标图片(.fig格式),选择左上角的File,点击Print Preview,如图1. 图1 然后,根据图2来调整图片的一些属性.选中圈圈1标记的Layout,圈圈2中的内容是用来调整

将matlab的figure保存为pdf,避免图片太大缺失

有时画的matlab图太大,或者有太多的子图,导致图太宽,如果直接保存成pdf的话,会导致左右边丢失,显示不下.一个有效又简单的办法是: 1.在matlab figure里面,Edit -> Copy Figure 2.在adobe acrobat里面,文件->创建PDF->从剪贴板. 就这么简单,根本无需什么eps2pdf,什么illustrator打印之类的 from: http://blog.sciencenet.cn/blog-242887-642730.html http://

Matlab imwrite函数 保存图像会压缩

Matlab 正常的 uint8*3 的变量,imwrite保存为jpg后会 压缩图像,两种解决方法. 1.'quality',100,'mode','lossless' imwrite(img_out,[imgPathOut,int2str(n),'.jpg'],'quality',100,'mode','lossless'); imwrite(imgA,[imgPathOutA,int2str(n),'.jpg'],'quality',100,'mode','lossless'); imwr

matlab 3D绘图详解

<pre code_snippet_id="1628801" snippet_file_name="blog_20160330_1_8408168" name="code" class="cpp"> 1.三维曲线: plot3() →plot3(X1,Y1,Z1,...) →plot3(X1,Y1,Z1,LineSpec,...) →plot3(...,'PropertyName',PropertyValue,..

matlab循环中保存.jpg图片的方法

在写matlab程序时,会遇到在循环中保存图片的问题 利用saveas可以非常方便的保存在当前文件夹中 例如 for ii = 1:N fig(ii) = figure(ii); plot()... picturename = strcat('Scatter P',num2str(ii),'.jpg'); saveas(fig(ii),picturename,'jpg') end 版权声明:本文为博主原创文章,未经博主允许不得转载.