如何在不同位置填充Matlab矩阵的行

时间:2019-08-16 16:41:39

标签: matlab vectorization

考虑矩阵A=zeros(r,3)。假设我有一个向量b,其大小为rx1,其中每个b(i)=1,2,3的向量为i=1,...,r

对于i=1,...,r,我要设置A(i,b(i))=1

此刻,我正在循环解决此问题:

clear
r=10^7;
A=zeros(r,3);
b=unidrnd(3,r,1);
for i=1:r
   A(i,b(i))=1;
end

此代码运行大约需要0.2秒。我想问一下您是否知道该代码的向量化版本所花费的时间更少,因为我必须在一个较大的代码中重复几次此过程。

0 个答案:

没有答案