【问题标题】:How do I roll out a Matlab app for others to use?如何推出一个 Matlab 应用程序供其他人使用?
【发布时间】:2009-11-24 20:44:51
【问题描述】:

我用 gui 编写了一个 MATLAB 脚本,我也想让我的同事使用它。现在,我总是启动 gui-builder 并从那里运行程序。我怎样才能将它打包在一起以便它易于使用并且最好只有一个文件左右。还有一个从程序中调用的 perl 脚本。如果相关的话,它只适用于 Windows。

编辑:他们并不都有 MATLAB。 但除此之外,我认为我做错了什么。如果我双击脚本,gui 将不会启动。如果我双击 .fig 文件,它会显示 gui,但当我想使用它时会给我一个错误。它只适用于我打开 gui-builder,然后在 gui-builder 中打开 .fig 文件,然后从那里运行脚本。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    如果您的同事没有 matlab,您可以编译它并将其打包成一个独立的可执行文件。这个过程非常简单。
    首先,使用deploytool 命令打开部署工具,创建一个新项目并将您的主 .m 文件拖到项目中。构建它,然后使用部署工具顶部的按钮打包它。

    【讨论】:

    【解决方案2】:

    如果您使用 GUIDE 生成图形,它应该已将图形初始化代码添加到关联的脚本中。你有没有看到类似

    gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @MyApp_OpeningFcn, ...
                   'gui_OutputFcn',  @MyApp_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
    

    朝向脚本的顶部?如果您看到它,但它不起作用,则可能是您在创建文件或函数后更改了它们的名称。

    或者您可能必须使用Handle Graphics 自己完成图形和脚本之间的所有链接。您需要使用fighandle = open('YourFigName.fig'),然后遍历fighandle 中的所有命名对象并使用set 指定回调。类似set(figHandle.MyPulldown, 'Callback', @myPulldownFncn)

    【讨论】:

    • 图形初始化在那里。澄清一下,当我使用 gui-builder 启动它时,它运行良好。
    • 这些是我得到的错误:???评估 uicontrol 回调时出错???尝试去引用非结构数组字段。 ...
    • 您是否尝试过在调试器中单步执行脚本?我从来没有遇到过你所描述的行为,尽管我也能够将大部分 GUIDE 工作强加给不同的同事......
    • 我很愚蠢。它当然是有效的。我像个白痴一样点击 .fig 文件。
    • 我倾向于从提示符中启动东西,所以我想我不会成为那个特定错误的牺牲品。不过,我仍然可以犯许多其他错误。
    【解决方案3】:

    如果你是有 Matlab 的用户,他们可以双击脚本文件,它应该会启动 Matlab 并自动运行脚本。或者……

    运行脚本“myfile.m”时,使用以下命令:

    matlab -r myfile
    

    调用接受两个参数的函数“myfile.m”时:

    matlab -r myfile(arg1,arg2)
    

    http://www.mathworks.com/support/solutions/en/data/1-16B8X/index.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-05
      • 2023-01-13
      • 1970-01-01
      • 2011-10-04
      • 2017-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多