2010-09-21 93 views
8

保存图形时,Matlab使用什么函数?例如,当用户选择文件>另存为...,然后选择.png或其他图像格式时,幕后会发生什么?在matlab中,如何将图形保存为图像,就像在图形窗口中使用“另存为...”一样?

我在问,因为我试图自动保存,但是当我使用saveasprint时,生成的图像实际上是像素化的。但是,使用上述方法保存图形时,图像看起来非常好。

我应该用什么方法从命令行中保存我的图形?数字窗口使用的实际方法是可行的,但如果你们有更好的解决方案,我会认真的!

回答

9

“Save As ...”菜单项的回调调用功能FILEMENUFCN,第一个输入参数是菜单图形的句柄在第二个输入参数是字符串'FileSaveAs'。如果您有存储在变量hFigure图手柄,那么下面的命令应该是相当于点击该图窗口中的“另存为...”菜单项:

>> filemenufcn(hFigure,'FileSaveAs'); 


的几个注意事项。 ..

  • 功能FILEMENUFCN仅部分记载。您可以在命令窗口中执行help filemenufcn,但在线文档中没有条目。在MATLAB 2009a的,该功能可在下列文件夹中找到:

    C:\Program Files\MATLAB\R2009a\toolbox\matlab\uitools\filemenufcn.m 
    

    通过功能代码来看,似乎它最终要么调用该函数SAVEAS为.FIG文件或功能HGEXPORT(额外的输入参数)用于其他文件类型。

  • 我能够通过搜索数字窗口的子项及其菜单来搜索“另存为...”菜单项的回调。您可以通过将root property 'ShowHiddenHandles'设置为'on',然后使用GET命令遍历图形窗口及其菜单的'Children' properties来完成此操作。另一种方法是使用FINDALL命令,假设您知道要查找的对象的一些属性。例如,这将找到手感的“文件”菜单,目前的数字窗口:

    >> hFileMenu = findall(gcf,'Label','&File'); 
    

    ,这将找到手感的“另存为...“菜单项,并显示其回调:

    >> hSaveAs = findall(hFileMenu,'Label','Save &As...'); 
    >> get(hSaveAs,'Callback') 
    ans = 
    filemenufcn(gcbf,'FileSaveAs') 
    
+1

谢谢你,你让我在正确的轨道上我结束了使用此: http://www.mathworks.com/matlabcentral/newsreader/view_thread/239960 Setting settings.Format ='png' 保存它没有很多pixelation。 – tylerthemiler 2010-09-21 18:56:36

+0

@tylerthemiler:是的,看起来功能[HGEXPORT](http://www.mathworks.com/help/techdocs) /ref/hgexport.html)在保存PNG图像时最终被调用(带有新闻组线程中显示的一些额外输入参数) – gnovice 2010-09-21 19:14:20

+1

Thanks!QOTSA btw。 – tylerthemiler 2010-09-21 20:50:15

2

我不知道你,但对我来说,保存的图像看起来不错。

代码例如:

... create some figure ... 
saveas(gcf, 'some_figure.png'); 

设置用户指定的分辨率使用:

print(gcf,'some_figure','-dpng','-rSOMENUMBER') 

其中SOMENUMBERis用于分辨率的参数。 最终分辨率为(SOMENUMBER * 8)x(SOMENUMBER * 6)