我已经编写了一个Gui程序,我编译到EXE应用程序,其中有很多csv文件到图形数据中。我创建了一个保存按钮,但我不知道每次使用不同名称的保存图形(savefig和uisave都使用matlab程序)。如果你们想出如何将gui figue保存到图像或任何需要matlab打开的东西,我会在下面发布我的代码。最后一个函数是保存按钮的回调函数。
function ma_Callback(hObject, eventdata, handles)
% i tried uisave but not possible to run computer without matlab cause mcr
% does not run uisave
% i tried copyopbj but since i did not put a name on my figure it did not
% work
%savefig
答案 0 :(得分:0)
如果您尝试从图中保存一种图像,那么支持许多方面的最佳选择是使用print
功能。
我已经在一个已编译的应用程序中完成了这项工作,它完美无缺。使用打印功能,您可以设置不同的文件类型(也支持矢量格式,如* .svg),分辨率(dpi)等等。
虽然你可以直接在图上使用print
函数,但我发现最好的方法(更多自定义,如删除或添加一些对象和更改许多选项)是按照以下步骤操作:
Visible='on'
创建另一个数字,但屏幕外的位置与主图的宽度和高度相同。
归一化位置= [-1,-1,?,?] 。 (在启动时创建此图并且不要将其销毁,直到您的应用退出,然后将其称为Print Figure
)。copyobj
将您的图形内容(或您感兴趣的部分)复制到该图中(您可能需要将某些关键对象的Parent属性设置为此图中的面板)。它们看起来与主图中看起来完全一样,因为它们具有相同的属性。您可以在此步骤中添加或删除某些对象。 在我的应用程序中,当打印任务完成时,我使用winopen
等函数向用户显示输出和输出目录。打印过程需要一些时间,特别是如果dpi很大,所以停用按钮和显示等待光标也是一个好主意。
<强>更新强>
一个简单的用法是:
print(MainFigure, 'myFileName', '-dpng', '-r300')