MATLAB: Selection of 3 large value from a matrix

How can i select 3 largest value from a matrix and remaining make zero without changing the dimension,For eg A=[1 3 5 8 31 7 4 18] The output should be A=[0 0 0 8 31 0 0 18] Please help

Best Answer

A=[1 3 5 8 31 7 4 18]
[ii,jj]=sort(A,'descend');
A(jj(4:end))=0
Or
A=[1 3 5 8 31 7 4 18]
[ii,jj]=sort(A,'descend');
B=zeros(size(A))
B(jj(1:3))=A(jj(1:3))
Related Question