使用sub2ind在MatLab中分配索引
我有3个数据集,两个有坐标,一个有长度为n的数据,有一个循环,我会这样分配数据使用sub2ind在MatLab中分配索引,matlab,indexing,Matlab,Indexing,我有3个数据集,两个有坐标,一个有长度为n的数据,有一个循环,我会这样分配数据 MAT = zeros(m, n); for i = 1:n MAT(Z(i), X(i)) = MAT(Z(i), X(i)) + DATA(i); end 我不想做循环,因为我想做的是: MAT = zeros(m, n); mn = size(MAT); MAT(sub2ind(mn, Z, X)) = MAT(sub2ind(mn, Z, X)) + DATA; 有人知道如何正确有效地制作吗
MAT = zeros(m, n);
for i = 1:n
MAT(Z(i), X(i)) = MAT(Z(i), X(i)) + DATA(i);
end
我不想做循环,因为我想做的是:
MAT = zeros(m, n);
mn = size(MAT);
MAT(sub2ind(mn, Z, X)) = MAT(sub2ind(mn, Z, X)) + DATA;
有人知道如何正确有效地制作吗
干杯。您应该使用accumarray功能,例如: 让我们: 然后我们有:
>> MAT = accumarray([Z(:),X(:)],D(:),[m,n])
MAT =
0 0 -5 0
0 6 0 0
0 0 0 8
7 0 0 0
>> MAT = accumarray([Z(:),X(:)],D(:),[m,n])
MAT =
0 0 -5 0
0 6 0 0
0 0 0 8
7 0 0 0