Matlab 可执行文件,传递变量

标签 matlab

如何使用deploytool从.m函数获取可执行文件并使用它?

假设我有一个 .m 名称 foo,代码如下:

function product = foo(array_a,array_b)
product = array_a.*array_b
end

现在我使用deploytool生成foo.exe,如何将它与相同的工作区变量(AKA array_a和array_b)一起使用?

问候

最佳答案

我只需向可执行文件提供变量即可让您的代码正常工作。

我首先运行mbuild -setup。我有你的文件,名为 foo2.m:

function product = foo(array_a,array_b)
if ischar(array_a)
array_a = str2num(array_a);
end
if ischar(array_b)
array_b = str2num(array_b);
end

product = array_a.*array_b
end

唯一的区别是我确保输入被处理为数字,而不是字符串。然后,我编译:

mcc -mv -R -singleCompThread -N -p optim -p stats foo2.m

(此命令的一个很好的解释在这里:MCC example。我使用该链接来帮助我让它工作。)

然后,只需执行该函数即可。

./run_foo2.sh /usr/local/MATLAB/R2011a/ 1 2

...

product =
 2

确保将编译器库的位置指定为第一个参数,然后将 array_a 和 array_b 作为第二个和第三个参数。

当我尝试运行可执行文件时,我第一次遇到错误:加载共享库时出错:libmwmclmcrrt.so.7.15:无法打开共享对象文件。我通过查找库文件路径(使用 find . -name "libmwmclmcrrt.so*")修复了此问题。然后,我更正了调用可执行文件时作为第一个参数提供的库路径。

关于Matlab 可执行文件,传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16391011/

相关文章:

matlab - MATLAB pos 函数的 Haskell/hmatrix 等价物是什么?

algorithm - Matlab:找到产生另一个矩阵的置换矩阵

algorithm - 去除不需要的白色像素以进行板分割 Matlab

matlab - 对 Matlab 类对象数组调用删除

algorithm - 如何生成具有函数模式的矩阵?

android - Simulink-Matlab:Android音频捕获

matlab - 使用 gist 和 SVM 训练的图像分类

r - 什么是 matlab 的 csaps() 的 R 等价物

matlab - 在matlab中有效计算汉明权重

具有多个条件的matlab索引