【发布时间】:2014-06-29 09:55:14
【问题描述】:
我将计算以下等式,其中有四个不同的变量。有没有可能的方法来省略计算这个方程的 for 循环?
Z = p1 * sqrt(q1^2 + q2^2 * p2^2)
其中的变量是:
p=[(1,1) (1,2) (1,3) (1,4)
(2,1) (2,2) (2,3) (2,4)
(3,1) (3,2) (3,3) (3,4)
(4,1) (4,2) (4,3) (4,4)];
其中第一个数字是 p1,第二个数字是 p2(例如,在 (1,2) 中,p1=1,p2=2)。 和:
q=[(5,5) (5,6) (5,7) (5,8)
(6,5) (6,6) (6,7) (6,8)
(7,5) (7,6) (7,7) (7,8)
(8,5) (8,6) (8,7) (8,8)]
第一个数字是 q1,第二个数字是 q2。
如何在没有 for 循环的情况下为它们中的每一个计算 Z?
【问题讨论】:
-
我没有看到任何 for 循环。你到底想要什么?
-
@Daniel 我没有在这里编写 for 循环,我想计算每个 p1、p2、q1 和 q2 的 Z。实际上对于这四个变量的每个组合,我都会有一个 Z。
-
@user3482383 查看基于
bsxfunhere 的新解决方案,该解决方案显示出一些运行时性能的承诺。
标签: arrays matlab for-loop vectorization