保存图形时,Matlab使用什么功能?例如,当用户选择文件>另存为...然后选择.png或其他图像格式,幕后发生了什么?
我在问,因为我正在尝试自动保存,但是当我使用saveas
或print
时,生成的图像确实是像素化的。但是,当我使用上述方法保存图形时,图像看起来非常好。
我应该使用什么方法从命令行保存我的数字?图形窗口使用的实际方法可行,但如果你们有更好的解决方案,我会给它做一些!
答案 0 :(得分:9)
“另存为...”菜单项的回调调用函数FILEMENUFCN,第一个输入参数是菜单所在图形的句柄,第二个输入参数是字符串'FileSaveAs'
。如果您将数字句柄存储在变量hFigure
中,那么以下命令应该等同于单击该图窗口中的“另存为...”菜单项:
>> filemenufcn(hFigure,'FileSaveAs');
一些注释......
FILEMENUFCN功能仅记录部分。您可以在命令窗口中执行help filemenufcn
,但在线文档中没有条目。在MATLAB 2009a中,该功能可以在以下文件夹中找到:
C:\Program Files\MATLAB\R2009a\toolbox\matlab\uitools\filemenufcn.m
通过搜索图窗口及其菜单的子项,我能够搜索“另存为...”菜单项的回调。您可以通过将root property 'ShowHiddenHandles'
设置为'on'
,然后使用'Children'
properties命令遍历图窗口的GET及其菜单来自行完成此操作。另一种方法是使用FINDALL命令,假设您知道要查找的对象的某些属性。例如,这将找到当前图形窗口的“文件”菜单的句柄:
>> hFileMenu = findall(gcf,'Label','&File');
这将找到“另存为...”菜单项的句柄并显示其回调:
>> hSaveAs = findall(hFileMenu,'Label','Save &As...');
>> get(hSaveAs,'Callback')
ans =
filemenufcn(gcbf,'FileSaveAs')
答案 1 :(得分:2)
我不了解你,但对我来说,保存的图片看起来不错。
代码示例:
... create some figure ...
saveas(gcf, 'some_figure.png');
要设置用户指定的分辨率,请使用:
print(gcf,'some_figure','-dpng','-rSOMENUMBER')
其中SOMENUMBER是用于解决方案的参数。 最终决议是(SOMENUMBER * 8)x(SOMENUMBER * 6)