相关疑难解决方法(0)

PHP中的奇异值分解(SVD)

我想在PHP中实现奇异值分解(SVD).我知道有几个外部库可以为我做这个.但是我有两个关于PHP的问题:1)你认为用PHP编写SVD是否可能和/或合理?2)如果(1)是肯定的:你能帮我用PHP编写代码吗?

我已经自己编写了SVD的一些部分.这是我对行动过程做出评论的代码.此代码的某些部分并不完全正确.

如果你能帮助我会很棒.非常感谢你提前!

php eigenvalue svd eigenvector

9
推荐指数
2
解决办法
6330
查看次数

调用MATLAB的内置LAPACK/BLAS例程

我想学习如何在MATLAB中调用内置的LAPACK/BLAS例程.我有MATLAB和mex文件的经验但我实际上不知道如何调用LAPACK或BLAS库.我发现在网关程序文件交换,简化了电话,因为我没有写任何功能的MEX文件,如这一个.我需要任何玩具示例来学习MATLAB和这些内置库之间的基本消息传递.任何玩具示例,如矩阵乘法或LU分解都是受欢迎的.

matlab linear-algebra blas lapack

9
推荐指数
1
解决办法
6314
查看次数

计算在2D中将四边形变换为另一个四边形的矩阵

在下图中,目标是计算单应矩阵H,其将点a1 a2 a3 a4变换为它们的对应点b1 b2 b3 b4.那是:

[b1 b2 b3 b4] = H * [a1 a2 a3 a4]
Run Code Online (Sandbox Code Playgroud)

您建议采用什么方式成为计算H(3x3)的最佳方法.a1 ... b4是2D中的点,它们在齐次坐标系中表示(即[a1_x a1_y 1]',...). 编辑:对于这些类型的问题我们使用SVD,所以我想看看如何在Matlab中简单地完成.

编辑:

以下是我最初尝试使用Maltlab中的svd(H = Q/P)来解决它的方法.Cosider给出了给定示例的以下代码

px=[0 1 1 0];  % a square
py=[1 1 0 0];

qx=[18 18 80 80];    % a random quadrangle
qy=[-20 20 60 -60];
if (DEBUG)
  fill(px,py,'r');
  fill(qx,qy,'r');
end

Q=[qx;qy;ones(size(qx))];
P=[px;py;ones(size(px))];
H=Q/P;
H*P-Q
answer:
   -0.0000         0         0         0         0
  -20.0000   20.0000  -20.0000   20.0000    0.0000
   -0.0000         0         0         0   -0.0000 …
Run Code Online (Sandbox Code Playgroud)

matlab robotics computer-vision numerical-methods projective-geometry

5
推荐指数
1
解决办法
4857
查看次数