我是靠谱客的博主 真实歌曲,最近开发中收集的这篇文章主要介绍循环输出plot结果图,出现报错“但其类型是 matlab.ui.figure。”,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 想画几条线,然后循环输出保存图片。但是使用imwrite函数时,出现报错说“DATA应该是以下类型之一,但其类型是 matlab.ui.figure。”

一查定义的图片名fig是Figure格式。

回去看代码,问题出在:

 查看mathworks的文档:控制图窗窗口的外观和行为 - MATLAB- MathWorks 中国

 fig被定义成figure格式了。

所以添加代码如下:

frame = getframe(fig); % 获取frame
img = frame2im(frame); % 将frame变换成imwrite函数可以识别的格式

然后再

imwrite(img,filename,'jpg');

就可以了。

END!

彩蛋  彩蛋  彩蛋  彩蛋  彩蛋  彩蛋  彩蛋  彩蛋  彩蛋  彩蛋  彩蛋  彩蛋  彩蛋  彩蛋  彩蛋  彩蛋  

还有一种就是直接用saveas保存图片,保存方法如下:

for i = 1:n
    plot(...);
    saveas(gca,num2str(i),'jpg');
    close(gcf);
end

for循环里一定要有:close(gcf);  否则从第二幅图片开始就会重叠。

但都说saveas和imwrite函数不同,搜了搜它俩的区别,引用别人总结的话如下:

两个命令都可以用来保存图像,区别在于
1、背景色:saveas保存的图像 背景色自动设置为白色,imwrite保存图像为所见即所得
2、图像大小: saveas无视你设置的图像大小,按默认保存,imwrite保存所见即所得

但我用着两种方法生成结果,差别在哪,有人知道的话还请告诉我

1.saveas的结果:

 2.imwrite的结果:

最后

以上就是真实歌曲为你收集整理的循环输出plot结果图,出现报错“但其类型是 matlab.ui.figure。”的全部内容,希望文章能够帮你解决循环输出plot结果图,出现报错“但其类型是 matlab.ui.figure。”所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部