【发布时间】:2016-05-03 04:20:26
【问题描述】:
假设我有一个n by d 矩阵A,我想置换某些列的条目。为此,我将1 ... n 的排列计算为
idx1 = randperm(n)'
idx2 = randperm(n)'
那么我可以这样做:
A(:,1) = A(idx1,1)
A(:,2) = A(idx2,2)
但是,我不想使用for-loop 来执行此操作,因为它会很慢。假设我有一个n by d 矩阵A 和一个指定排列的n by d 索引矩阵IDX,是否有更快的等效于以下for-loop:
for i = 1:d
A(:,i) = A(IDX(:,i),i);
end
【问题讨论】:
标签: matlab matrix random permutation vectorization