Using a vector of indices to add values to a matrix
Ältere Kommentare anzeigen
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.
Akzeptierte Antwort
Weitere Antworten (1)
Jos (10584)
am 5 Mär. 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))
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!