我在Windows 7 SP1 64位计算机上运行带有PHP 5.5.12的WAMP Server 2.5(32位)。我正在运行Matlab R2014b。
我正在尝试通过PHP执行Matlab。
Matlab函数phptest.m如下:
function phptest
% Open file
fid = fopen('success.txt', 'wt');
%Print a test string
fprintf(fid, 'Test matlab function');
% Close file
fclose(fid);
% Quit MATLAB
quit force
当我从命令提示符执行时:
matlab -wait -nosplash -sd "C:wampwwwtestMatlab" -logfile logfile.txt -r "phptest;"
代码运行时没有问题,并且创建了文件sucess.txt。
但是,如果我尝试通过php文件执行:
<?php
$testStr = 'matlab -wait -nosplash -sd "C:wampwwwtestMatlab" -logfile logfile.txt -r "phptest;"';
exec($testStr);
echo("Done!");
?>
日志文件显示以下错误:
严重:签出许可证时出错
如有任何帮助,我们将不胜感激。
您可以通过使用-c
标志运行MATLAB来强制使用特定的许可证文件:
'matlab -c "path/to/license" -wait -nosplash -sd "C:wampwwwtestMatlab" -logfile logfile.txt -r "phptest;"';
matlab-c licensefile使用指定的许可文件启动matlab。licensefile参数可以具有以下形式port@host或者可以是以冒号分隔的许可证文件名列表。此选项会导致LM_LICENSE_FILE和MLM_LICENSE_FILE环境变量已忽略。
请参阅:http://www.mathworks.nl/help/matlab/ref/matlabwindows.html