1

所以我有 2 个矩阵:每个都是 100x100。

我正在寻找计算第三个矩阵,这样:M3[i]=sqrt(M1[i]^2 + M2[i]^2)。

我显然可以做 ForLoops,但我确信有更快的东西。

我深入研究了加速框架并迷失在 Linpack 世界中

任何帮助让我走上正轨......

谢谢

4

2 回答 2

1

Accelerate 框架是个好主意。

您可以使用vDSP_vsq 之类的函数一次对矩阵的一列进行操作,将结果放在 M3 的相应列中。您可能必须制作两个结果矩阵(一个是 M1^2,另一个是 M2^2),然后通过添加调用vDSP_vadd的列来添加它们以形成正确的 M3 结果矩阵,这又是能够一次操作一列。

Apple 开发者页面上有示例代码(显示如何添加两个向量等)。

于 2013-01-30T02:09:47.310 回答
0

我认为最快的方法是使用

vDSP_vpythg 向量毕达哥拉斯;单精度。

从 A 中减去向量 C 并平方差,从 B 中减去向量 D 并平方差,将两组差平方相加,然后将和的平方根写入向量 E。

显然为 C 和 D 传递零向量。

于 2013-02-20T17:55:07.363 回答