Using a vector of indices to add values to a matrix
Afficher commentaires plus anciens
I am trying to vectorize a piece of code which has this form:
for m = 1:1:numel(N)
y = N(m,1);
x = N(m,2);
val = N(m,3);
P(y,x) = P(y,x)+val;
end
So, there is the matrix of column vectors N which hold coordinate information and a value. Using the coordinates the corresponding values are added to the matrix P.
How can this be done efficiently? Thanks.
Réponse acceptée
Plus de réponses (1)
Jos (10584)
le 5 Mar 2014
ACCUMARRAY is, by far, the easiest approach:
N = [1 2 7 ; 1 2 4 ; 2 3 5 ; 2 1 6]
P = accumarray(N(:,1:2),N(:,3))
Catégories
En savoir plus sur Resizing and Reshaping Matrices dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!