Finding repeating values in an array
2 ビュー (過去 30 日間)
古いコメントを表示
Hello all,
I have 2 arrays
A = [ 0.3 0.6 1 0.6 0.3]
B = [ 3 2 3 6 11 ]
I need to find the position of same elements in B and then the max value of the elements on the corresponding position in A.
In this case the number 3 is repeated in B on positions 1 and 3 so the corresponding values in A are 0.3 and 1 => max( 0.3 , 1 ) = 1
The end resault should be:
A1 = [ 0.6 1 0.6 0.3 ]
B1 = [ 2 3 6 11 ]
Any help is appreciated
3 件のコメント
dpb
2020 年 4 月 25 日
The find part is easy enough, the logic of how to build the A1, B1 vectors from A,B and the lookups escapes me entirely, though...???
採用された回答
aleksa markovic
2020 年 4 月 25 日
編集済み: aleksa markovic
2020 年 4 月 25 日
You ca try something like this:
Xa = [3 2 3 6 11];
mua = [.3 .6 1 .6 .3];
tmpX = [];
tmpmu = [];
for i = 1:size(Xa,2)
if(sum(tmpX == Xa(i)) > 0)
tmpmu(tmpX == Xa(i)) = max(mua(i),tmpmu(tmpX == Xa(i)));
else
tmpX = [tmpX Xa(i)];
tmpmu = [tmpmu mua(i)];
end
end
Xa = tmpX;
mua = tmpmu;
0 件のコメント
その他の回答 (2 件)
andrea
2020 年 4 月 25 日
maybe i do not understand the problem but anyway
[val, ind] = min ( A ( pos_in_b) )
A(ind) = []
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!