different z values for one x y coordinate
古いコメントを表示
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
採用された回答
その他の回答 (1 件)
Sean de Wolski
2012 年 3 月 7 日
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 件のコメント
Markus
2012 年 3 月 7 日
Sean de Wolski
2012 年 3 月 7 日
yes, accumarray with unique and mean() would be ideal. Though a for-loop works well too!
Markus
2012 年 3 月 7 日
Sean de Wolski
2012 年 3 月 7 日
Sure. I'll never turn down any opportunity to use accumarray (or bsxfun)!
Markus
2012 年 3 月 8 日
カテゴリ
ヘルプ センター および File Exchange で Matrix Indexing についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!