如何在matlab中向量化这个简单的赋值循环

时间:2012-01-09 11:33:06

标签: matlab vectorization

我有一个向量v的值和一个索引向量r。我想将值存储在矩阵m中,如下所示:

for i = 1:length(v)
    m(i, r(i)) = v(i);
end

以矢量化方式执行此操作的最快方法是什么?

1 个答案:

答案 0 :(得分:2)

我不知道它是否更快,我想是这样,但差异可能很小,但这是一种方式:

m(sub2ind(size(m),1:length(v),r(1:length(v))))=v;

如果r是列向量,那么sub2ind会抱怨向量大小,你只需要进行转置就可以解决这个问题。