different z values for one x y coordinate
Mostra commenti meno recenti
hei,
my problem is, that i have xyz points and it happens, that for one identical x,y value i get several z values.
now i want to get all z values for one x,y koordinate.
i tried first with unique so i now all x,y koordiates. but now i would like to get all z values which belong to this x,y.
thanks for help. ;-) markus
Risposta accettata
Più risposte (1)
Sean de Wolski
il 7 Mar 2012
You could use the index output arguments of unique along with accumarray(). What do you want to do with multiple z values?
doc unique %look at 3rd output
doc accumarray
More per comments:
xy = [1 2; 1 2; 1 2; 3 4; 5 6; 5 6; 7 8]; %xy pairs
z = (1:length(xy))';
[~,idxk,idxn] = unique(xy,'rows'); %idxk = kept rows, idxn = subs_rows
zmean = accumarray(idxn,z,[],@mean); %get the mean of the groups
xyz = [xy(idxk,:) zmean] %concatenate
5 Commenti
Markus
il 7 Mar 2012
Sean de Wolski
il 7 Mar 2012
yes, accumarray with unique and mean() would be ideal. Though a for-loop works well too!
Markus
il 7 Mar 2012
Sean de Wolski
il 7 Mar 2012
Sure. I'll never turn down any opportunity to use accumarray (or bsxfun)!
Markus
il 8 Mar 2012
Categorie
Scopri di più su Matrix Indexing in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!