概述
想画几条线,然后循环输出保存图片。但是使用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。”所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复