Indices of 2D array
이전 댓글 표시
I have a 1D (very big one) array like below:
data =[ 2 5 0 15 12 7 4 8 19 14 20 25 18 13 40 ];
I want to make the lowest value to zero in every 3 element. I firstly reshaped it to be like:
reshaped_data =
2 15 4 14 18
5 12 8 20 13
0 7 19 25 40
And then sorted each column and now I have the indices of the sorted data as below.
sorted_data_index =
2 1 3 3 3
1 2 2 2 1
3 3 1 1 2
So, please let me know how can I use sorted_data_index as indices of reshaped_data to be able to make the lowest values zero?
I can do this within a for loop, but it would be very slow.
Thanks
채택된 답변
추가 답변 (1개)
Luna
2020년 11월 5일
try this:
data =[ 2 5 0 15 12 7 4 8 19 14 20 25 18 13 40 ];
reshaped_data = reshape(data,3,length(data)/3);
[min_vals,idx] = min(reshaped_data);
idx_increment = 0:3:length(data)-3;
element_number_in_matrix = idx + idx_increment;
reshaped_data(element_number_in_matrix) = 0;
new_data = reshape(reshaped_data,1,length(data));
댓글 수: 1
Mohammad Torabi
2020년 11월 5일
편집: Mohammad Torabi
2020년 11월 5일
카테고리
도움말 센터 및 File Exchange에서 Beamforming and Direction of Arrival Estimation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!