数组产品的矢量化

vectorization for array products

如何向量化这个循环?

b = 大小为 (2,3)

的实数数组

M = 大小为 (7,2)

的实数数组

y = 大小为 (n,3)

的实数数组

bM 是常量,n 是 "big"(在我的问题中,n > 80000)。

我想优化(矢量化)这个循环:

for k=1:max(size(y))
    r=b*y(k,:)';
    p(k)=r'*M;
end

不胜感激

第一个p(K)=r'*M是错误的

(b*y(k,:)' 是 (2X1) 而 M 是 (7X2))

所以我认为你的意思是 p(k)=r'*M';

然后

b 是 (2X3)

y 是 (nX3)

r= b*y' 是 (2Xn)

r' 是 (nX2)

M' 是 (2X7)

p=r'*M' 是 (nX7)

所以你不需要使用 for 循环,可以简单地写:

p=(b*y')'M' 要么 p=(M(b*y'))'