我想以编程方式'打印到'计算'Simulink范围并将结果图保存到文件夹。
考虑遵循Simulink模型并选择范围:
我运行以下代码(受this question启发):
scopeName=get_param(gcb,'Name');
hs=findall(0,'Name',scopeName);
hf=figure(1);
hp=findobj(hs.UserData.Parent,'Tag','VisualizationPanel');
copyobj(hp,hf)
filename='test.tiff';
print('-dtiff',filename);
虽然范围和图形都有黑色背景
保存的文件有白色背景
print
命令或其他内容是否有问题?
答案 0 :(得分:1)
您可以看到相同的视图:
img = getframe(gcf);
imwrite(img.cdata,'test.tiff');
答案 1 :(得分:1)
默认情况下,MATLAB在打印到图形时反转背景颜色。要解决此问题,您可以将InvertHardCopy
设置为'off'
set(gcf, 'InvertHardCopy', 'off')
执行此操作(与使用getframe
相反)会产生更高分辨率的图像,因为getframe
只是将图形保存在屏幕分辨率(72dpi)。
另一种选择是使用export_fig
from the MATLAB file exchange来保存数字,以便更可靠地重现屏幕上的图像。