adding to a matrix with
Mostra commenti meno recenti
I want to add one to the matrix A for each time the respective linear index appears in the vector Ex. lin_ind =
1 1 3 5 5 7 9 9 11 13 13
A = zeros(8, 8)
I want A(1) = 2 because 1 appears twice. A(2) = 0. A(3) = 1.
2 Commenti
Chaowei Chen
il 27 Ago 2011
just comment on "I want A(1) = 2 because 1 appears twice. A(2) = 0. A(3) = 1. "
This is histogram. A=hist(lin_ind,1:64);A=reshape(A,[8 8]);
Walter Roberson
il 27 Ago 2011
Good point about it being a histogram.
I did some timing, and on my system,
A=reshape(accumarray(lin_ind(:),1,[64 1]),[8,8]);
is about twice as fast as
A=reshape(hist(lin_ind,1:64),[8,8]);
when tried with the lin_ind given above. I did not try with a larger lin_ind
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Matrix Indexing in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!