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!