gpt4 book ai didi

matlab - 允许用户在已编译的Matlab GUI中提供.m函数

转载 作者:行者123 更新时间:2023-12-02 10:46:51 27 4
gpt4 key购买 nike

我尝试阅读有关已编译的Matlab GUI的许多文档(尤其是http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/,其中询问但未回答问题),但是找不到我的问题的答案。

我想在Matlab中创建一个已编译的GUI(与deploytool一起编译,并且可以在没有Matlab的计算机上运行),在某个时候,用户可以指定自己的matlab .m文件(例如:myProfile.m ),然后Gui稍后再使用它(最后一点是棘手的部分)。

myProfile.m是一个简单的函数(它使用一个参数并输出一个值),该函数可以位于用户想要的任何位置,并且完全由用户定义。我在这里举一个简单的例子:

function [y] = myProfile(x)
y = x^2;
end

但它可能更复杂。

在Gui中,我向用户询问其配置文件功能的路径,并尝试使其成为函数句柄:
Button1 = uicontrol('String','Browse path to your Profile',...
'Position',[320 10 150 150],...
'Callback',@button1_Callback);
function [profileFunc] = button1_Callback(varargin)
[ProfileName,ProfilePath] = uigetfile({'*.m'},'Select your profile');
addpath(ProfilePath);
profileFunc = str2func(strcat('@',ProfileName));
% profileFunc will be used later on in the code
end

当然,编译后此代码将不起作用,并且会出现以下错误:
 'C:\Users\...\myProfile.m' is not in the application's expanded CTF archives at 
'C:\Users\...\mcrCache8.0\myGui'. This is typically caused by calls to ADDPATH ...

我知道在编译Gui时在Gui中使用addpath无效。但是,如果我不添加路径,则程序找不到提供的用户myProfile.m。那么我该如何解决呢?

谢谢,

山姆

最佳答案

从许可 Angular 来看这很简单。 Mathworks不允许部署此类代码,您可以轻松部署自己的matlab命令行版本,该版本运行任意代码且不需要任何许可证。

我认为只有一种方法:部署m代码并要求用户安装matlab或octave。

选择:
如果部署jar,则JRE已在运行。使用Java脚本作为JRE的考虑者已经带来了脚本引擎。然后,用户将不得不输入Java脚本。

关于matlab - 允许用户在已编译的Matlab GUI中提供.m函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28022296/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com