【发布时间】:2018-03-08 09:15:41
【问题描述】:
是否可以矢量化(不使用 for 循环也一样)这个问题?
A=[(1:5)' (1:5)' (1:5)'];
B=ones(1000,5);
D=size(A,1)
C=zeros(1000,3,5)
for y=1:D
C(:,:,y)=B(:,A(y,:));
end
【问题讨论】:
-
您使用什么编程语言? MATLAB?
-
Matlab。立即添加标签。
-
你总是可以牺牲内存并做
repmat。不过我认为这是一个很好的方法,不一定比使用repmat -
矩阵 A 可以有 1 到 5 之间的随机数。矩阵 B 可以有完全随机数。
-
除非它是你程序的瓶颈,否则不要向量化东西。并且总是在之前和之后测量。在最新版本的 MATLAB 中,矢量化代码不一定比循环快。
标签: matlab for-loop vectorization