Info
이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.
3 demension matrix coding - find largest NN elements
조회 수: 1 (최근 30일)
이전 댓글 표시
I have (M X N X sample) 3-demension matrix, and i want to change all elements to '0' except the largest 'NN' elements
for example;
when the matrix is (4 X 4 X 2) and NN=2
there are two matrix
1 2 3 4
1 2 1 2
2 1 1 2
and
4 1 2 3
1 2 1 2
1 2 2 1
and i want to change into
0 0 3 4
0 0 0 0
0 0 0 0
and
4 0 0 3
0 0 0 0
0 0 0 0
these two matrix
plz let me know how to change it....
댓글 수: 2
Walter Roberson
2019년 8월 8일
What do you want to do in the case of duplicates? For example if the original matrix were
1 2 3 4
1 2 1 2
3 1 1 2
then what would you want the output to be for NN=2 ?
답변 (1개)
Rik
2019년 8월 9일
You will probably need to loop through the pages. The second output of max should be what you need.
A=rand(4,4,5);
out=A;
element_per_page=size(A, 1)*size(A,2);
for p=1:size(A,3)
[~,order]=sort(A(:,:,p));
ind=order(3:end)+element_per_page*(p-1);
out(ind)=0;
end
(untested code, written on mobile)
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!