如何以简单/有效的方式执行PHP矩阵操作

时间:2013-08-21 16:23:17

标签: php matrix octave sage

我正在寻找一种以简单/有效的方式在PHP中执行Matrix操作的方法。

我希望能够执行基本的矩阵运算,如反转,乘法,行列式,加,减,求解线性方程Ax = B,转置等。

我正在研究小尺寸矩阵(我想反转的矩阵最多为100x100,我想要乘法/转置的矢量可能是1000x1)。

我找到了一个PEAR包Math_Matrix,但它似乎被忽略了(我使用E_STRICT开发并且它抛出许多已弃用的警告)。我发现的其他链接似乎大部分已破坏且未更新。

我找到了Lapack PHP包但它没有其他操作,如乘法或减法或转置。

我知道另一个选择是使用与Octave或Sage等其他软件的集成,但是我们还不确定我们是否想要这样做(财务团队鄙视Python语法,IT团队担心Octave开销)

是否有任何独立库可供任何人使用这种具有所有基本操作且已更新的矩阵操作?

2 个答案:

答案 0 :(得分:3)

查看http://projects.moongate.ro/octave-daemon/

可以减少开销并说服IT团队的一些功能:

  • 守护程序可通过网络访问,这意味着您可以在单独的服务器上移动所有Octave进程,如果您确定需要

  • Octave流程是持久性的,这意味着:以前加载或计算过的任何数据仍然可用于新连接的客户端

  • 新Octave流程的启动时间不会影响客户端。

  • 提供Octave矩阵和PHP数组之间的转换。

答案 1 :(得分:1)

一年后我回答了自己的问题。

我们选择另一个选项,我们用C ++编写了自己的小型库,我们编译它并将其作为扩展添加到php。这产生了最佳性能,代码保持漂亮。

$inverted = my_matrix_invert($matrixArray);

想要做这类事情的人应该看一下:http://www.php-cpp.com