zoukankan      html  css  js  c++  java
  • 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:MATLAB7work','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'。

     
     
  • 相关阅读:
    使用tcmalloc编译启动时宕机
    使用tcmalloc编译出现undefined reference to `sem_init'
    使用AddressSanitizer做内存分析(一)——入门篇
    VIM-美化你的标签栏
    Entity Framework Code First (六)存储过程
    Entity Framework Code First (五)Fluent API
    Entity Framework Code First (四)Fluent API
    Entity Framework Code First (三)Data Annotations
    Entity Framework Code First (二)Custom Conventions
    Entity Framework Code First (一)Conventions
  • 原文地址:https://www.cnblogs.com/leoking01/p/6396945.html
Copyright © 2011-2022 走看看