如何在matlab中对这个简单的赋值循环进行矢量化



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

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

以矢量化的方式做到这一点最快的方法是什么?

我不知道它是否更快,我想是的,但差异可能很小,但有一种方法:

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

如果r是一个列向量,那么sub2ind会抱怨向量的大小,你只需要取它的转置,它就会解决这个问题。

最新更新