How to average certain elements in a matrix using for loop.
Afficher commentaires plus anciens
Hello,
I am trying to operate on a matrix that has the following columns:
M=[x_coordinates y_coordinates ID] I would like to find the average x and y coordinates for same ID, in other words to group all the points that has the same ID. Can you please advice me on how to do it with Matlab.
Best regards, Jack
Réponse acceptée
Plus de réponses (2)
Sean de Wolski
le 3 Mar 2014
doc accumarray
And an example:
%%sample data
n = 50;
id = randi(5,n,1);
x = rand(n,1);
y = rand(n,1);
%%engine
[uid,~,idx] = unique(id); % unique ids and the index of occurrences
mx = accumarray(id,x,[],@mean); % mean of x by id
my = accumarray(id,y,[],@mean); % mean of y by id
results = [uid mx my] % display
jack
le 3 Mar 2014
0 votes
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!