Dear All;
I have an array of two columns, I want to find each repeated values of y for each x value and then the max of these y value to this x value and make new matrix in which for each x value there is a unique y value
how to do that ?

1 件のコメント

Walter Roberson
Walter Roberson 2014 年 3 月 6 日
What do you want done if one of the y values is unique instead of being repeated?

サインインしてコメントする。

 採用された回答

Walter Roberson
Walter Roberson 2014 年 3 月 6 日

0 投票

[uvals, ua, uc] = unique(xy(:,1));
maxy = accumarray(uc(:), xy(:,2), [], @max);
newarray = [uvals(:), maxy(:)];

その他の回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2014 年 3 月 6 日

0 投票

v=[1 2;1 3;4 5;4 20;10 30]
[ii,jj,kk]=unique(v(:,1))
out=[ii accumarray(kk,v(:,2),[],@max)]

カテゴリ

ヘルプ センター および File Exchange で Resizing and Reshaping Matrices についてさらに検索

製品

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by