【问题标题】:how to save figure of gui plot which will run on a computer that does not have matlab如何保存将在没有matlab的计算机上运行的gui图图
【发布时间】:2016-06-13 02:11:03
【问题描述】:

我制作了一个 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

【问题讨论】:

    标签: matlab user-interface matlab-figure matlab-guide


    【解决方案1】:

    如果你想从你的图中保存一种图像,那么支持多方面的最佳选择是使用print函数。

    我已经在一个已编译的应用程序中完成了这项工作,而且效果很好。使用打印功能,您可以设置不同的文件类型(还支持 *.svg 等矢量格式)、分辨率(dpi)等等。

    虽然你可以直接在图上使用print函数,但我发现最好的方法(更多自定义,比如删除或添加一些对象和更改许多选项)是按照以下步骤操作:

    1. 使用Visible='on' 创建另一个图形,但位置在屏幕外,与主图形的宽度和高度相同。 标准化位置 = [-1, -1, ?, ?]。 (在启动时创建这个图,在你的应用退出之前不要销毁它,我们称之为Print Figure)。
    2. 使用copyobj 将您的图形内容(或您感兴趣的部分)复制到该图形(您可能需要将面板等一些关键对象的Parent 属性设置为这个新图形)。它们看起来与主图中的完全一样,因为它们具有相同的属性。您可以在此步骤中添加或删除一些对象。
    3. 更改“打印图”的纵横比以获得更好的输出。
    4. 使用您需要的所有选项(文件格式、dpi、...)打印此图。在我自己的 GUI 中,我允许用户使用输入对话框更改此设置。

    在我的应用程序中,当打印任务完成时,我使用像 winopen 这样的函数来向用户显示输出和输出目录。打印过程需要一些时间,特别是在 dpi 很大的情况下,因此禁用按钮并显示等待光标也是一个好主意。

    更新:

    一个简单的用法是:

    print(MainFigure, 'myFileName', '-dpng', '-r300')
    

    【讨论】:

    • @eulerleibniz ,嗨,这是我第一次使用 GUI,我不是这方面的专家。有什么简单的方法可以做到这一点。如果我只是想用不同的方式保存 gui,比如正在保存的 Microsoft Word 文档,以后不会被拉出
    • 亲爱的@ParthaDey,您的评论不清楚。你的意思是什么不同于微软的word文档?如果您想保存为 .fig 文件,则无法完成,因为编译后的应用程序旨在用于未安装 MATLAB 的计算机。但是您可以将图形对象保存到 .mat 文件中并稍后加载。
    • @eulerleibniz 我不能使用 uiputfile 并将图形打印为 .jpg 格式。但是,我不知道使用代码中的 print 函数打印出什么变量。你能告诉我要打印的变量是什么吗?是Gui图的handles.axes1吗?
    • 不工作。当我将在我的代码中使用打印功能时,你能告诉我放什么而不是 MainFigure。
    • @ParthaDey。 MainFigure 是您创建的图形的名称。在 plot 命令后的代码中使用MainFigure = gcf 来获取图形的句柄,然后将其用于打印。
    猜你喜欢
    • 1970-01-01
    • 2014-04-05
    • 2016-10-26
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    相关资源
    最近更新 更多