1

如何运行从 php 文件保存为 .m 文件的 MATLAB 代码?我是 php 新手,并且正在学习。我正在从网站捕获信息,然后需要运行一些数字。我需要 MATLAB,因为计算非常复杂,但设法连接到同一个数据库并直接从 MATLAB 中提取相关值,所以实际上我要做的就是打开 MATLAB 并运行 .m 文件,该文件已经包含代码中的所有内容.

我有 MATLAB 2012b 版本,并且正在使用 MAMP 在我的本地主机上运行该网站。

到目前为止,我已经尝试过:

<?php system('/Applications/MATLAB_R2012b.app/bin/matlab -nodisplay -nosplash -r "code.m"'); ?>

没有任何事情发生,这很奇怪,因为在终端中,如果我在 '' 中输入上面的代码,代码就会完美运行。

我尝试的另一件事是运行这个:

<?php system('cd /Applications/MATLAB_R2012b.app/bin; ls; open matlab');?>

输出是正确的,因为我得到:

activate_matlab.sh, m3iregistry, mexopts.sh, deactivate_matlab.sh, maci64, mw_mpiexec, deploytool, matlab, mw_smpd, engopts.sh, matopts.sh optsetup.sh, insttype.ini, mbuild, registry, lcdata.xml, mbuildopts.sh, util, lcdata.xsd mcc, worker, lcdata_utf8.xml, mex, ldd, mexext

这意味着我可以直接访问 MATLAB Unix 可执行文件所在的“bin”,但我无法运行实际的 Unix 可执行文件。

有什么建议么?

4

1 回答 1

0

我终于解决了这个问题。我最终做的是使用 MALTAB 编译器工具箱编译一个独立的应用程序,并通过在其上安装 MATLAB Complier Runtime (MCR) 让服务器解释代码。但请注意,服务器上的操作系统必须相同。因此,如果您在 Mac 中编译并在 Ubuntu 中使用 MCR,它将无法正常工作。您需要这是统一的,因为在 MCR 解释的脚本中会生成许多特定于操作系统的引用。多谢你们。

于 2013-08-20T23:02:40.727 回答