数组产品的矢量化
vectorization for array products
如何向量化这个循环?
令 b
= 大小为 (2,3)
的实数数组
M
= 大小为 (7,2)
的实数数组
y
= 大小为 (n,3)
的实数数组
b
和 M
是常量,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'))'
如何向量化这个循环?
令 b
= 大小为 (2,3)
M
= 大小为 (7,2)
y
= 大小为 (n,3)
b
和 M
是常量,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'))'