mam*_*dan 18 php matlab matlab-deployment
正如标题所示,我有用于隔离口语识别的 MATLAB代码,并且我希望能够将该项目与另一个用PHP构建的项目集成用于某些目的.
我以前不习惯处理这样的问题.换句话说,这是我第一次需要集成PHP和MATLAB时,所以我真的不知道从哪里开始以及如何开始.
我已经阅读了几篇文章,但我无法使其有效.
我有PHP 5.4.9,MATLAB R2012A和Windows 7. MATLAB项目文件可以在GitHub上看到.
Amr*_*mro 19
你有几个选择:
是否将在部署PHP应用程序的服务器上安装MATLAB(而不是当前的开发环境)?如果是这样,您可以像使用任何其他程序(matlab -r "..."
)一样直接调用它,使用EXECUTE
PHP中的等效命令.以下是一些资源(同时也要检查链接的问题):
其他人评论了如何在PHP和MATLAB脚本之间传递输入/输出.例如,您可以设计MATLAB函数以接收WAV文件的路径作为输入,处理它并将任何结果图像保存到磁盘:
function myFunc(filename)
[y,Fs] = audioread(filename);
img = my_process_func(y, FS);
imwrite(img, 'out.png');
end
Run Code Online (Sandbox Code Playgroud)
从PHP调用的是:
% Of course you have to make sure "myFunc" is available on the MATLAB path.
% Think: "addpath(..)" or just "cd(..)" into the directory first
matlab -wait -nodisplay -r "myFunc('audio.wav'); quit;"
Run Code Online (Sandbox Code Playgroud)
然后,您可以在PHP应用程序中读取输出图像.
如果没有,您有哪些与部署相关的工具箱?MATLAB编译器和MATLAB Builder NE和MATLAB Builder JA等相关工具箱.
这些将分别将您的程序编译为可执行/ .NET程序集/ JAR文件,并且所有这些程序都需要安装可免费使用的MCR运行时.换句话说,可执行文件不需要在目标机器上安装完整的MATLAB,只需要在MCR运行时安装.
您将以与以前相同的方式运行可执行文件.
另一个产品是MATLAB Coder,它将您的MATLAB代码转换为C++程序.编译时,可以在没有任何外部要求的情况下运行.
Mathworks的新产品是MATLAB Production Server.我个人对此一无所知:)
另一种选择是使用TCP/IP在PHP和MATLAB之间进行通信.服务器将在MATLAB端运行,使用编写为C MEX文件或Java类的套接字编程.看到:
客户端是您的PHP应用程序.想法是让MATLAB监听连接,读取客户端给出的任何输入eval
,然后返回结果.这比其他选项更复杂,因为您必须处理序列化和其他事情,如并发.优点是MATLAB可以在单独的服务器上运行,甚至可以在云上的多个服务器上运行(参见本文).
首先,确定哪种方法最适合您的项目,然后更容易回答具体问题.只需要首先查阅文档,MATLAB工具箱有很好的文档记录,通常包含很多示例.以下是MATLAB Compiler产品系列特有的更多资源:
请注意,它们专注于ASP.NET和Java JSP/servlet应用程序.在您的情况下,PHP应用程序将与运行使用上述两个选项之一构建的Web服务的中间层进行通信(或者简单地设计一个类似CGI的站点,运行使用MATLAB编译器构建的普通可执行文件,如前所述)
HTH
归档时间: |
|
查看次数: |
21504 次 |
最近记录: |