如何從php文件運行保存爲.m文件的MATLAB代碼?我對PHP很陌生,一直在學習。我從網站獲取信息,然後需要運行一些數字。我需要MATLAB,因爲計算是相當複雜的,但設法連接到相同的數據庫,並直接從MATLAB拉相關值,所以我想要做的就是打開MATLAB並運行.m文件,它已經在代碼中包含所有內容。如何通過PHP啓動Matlab
我有版本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
這意味着我能夠直接訪問的 「bin」 MATLAB Unix可執行文件所在的位置,但我無法運行實際的Unix可執行文件。
有什麼建議嗎?
MatLab腳本是做什麼的?不要使用執行和轉儲輸出的'system()',而是嘗試捕獲將命令放入[PHP反向代碼](http://php.net/manual/en/language.operators.execution.php)並將輸出到一個變量並轉儲它。像這樣:'<?php $ output = \'/Applications/MATLAB_R2012b.app/bin/matlab -nodisplay -nosplash -r「code.m」\';的var_dump($輸出); ?> –
@LukeCordingley我得到以下結果:'string(0)「'' – ezpaider
權限問題可能是?你的PHP用戶在/ Applications中有執行權限嗎? – horchler