我正在进行一个MATLAB项目,我们想将其导出为.exe
。生成的文件必须能够在32位和64位的Windows7电脑上运行
经过一点研究,我们意识到通过在32位版本的MATLAB上开发,然后构建32位的.exe
文件,这个问题更容易解决。
到目前为止,我们所有的开发都是在64位版本的MATLAB中进行的。有了它,我们已经能够成功地生成并运行64位.exe
版本。
然而,现在我们切换到MATLAB 32位,并生成.exe
,出现了问题,显示了以下错误:
Undefined function ‘fmincon’ for input arguments of type ‘function handle’.
这是fmincon
首次出现的代码行:
Options = optimoptions('fmincon', 'DiffMinChange', 10);
几句话:
- 在MATLAB 64位上运行的相同脚本也在MATLAB上运行32位。在MATLAB环境中,一切都能顺利运行
- 这些脚本(具有相同的确切代码)仍然可以在MATLAB 64位上执行,没有任何问题
- 在这两种情况下,我们都正确安装了在PC上运行MATLAB可执行文件所需的运行时
- 我们尝试在64位和32位机器中运行32位
.exe
,结果相同
MATLAB部署的可执行文件的32位版本在处理优化工具箱中的函数时是否存在问题(如fmincon
)?
造成这个问题的其他原因是什么?有人知道怎么修吗?
只有在MATLAB的支持下,问题才得以解决。这与R2014a版本中的一个错误有关,在这个Mathworks链接中进行了解释和修补。