How do I find the value for which x% of the array is covered?
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi all,
I have a 3D array (attached), where I calculated the dose per voxel. Now, I want to find the minimum dose for which 20% of the array is covered (exluding zeros). I've tried the following:
D20_VSV=sort(D_tumorVSV(:),'descend');
result=D20_VSV(1:ceil(length(D20_VSV)*0.9));
This is a simple code (via this question), but doesn't seem to give the wanted result. How should I do this? Thank you in advance!
댓글 수: 0
채택된 답변
Prahlad Gowtham Katte
2022년 1월 25일
편집: Prahlad Gowtham Katte
2022년 1월 25일
Hi
My understanding of the question is that you want to sort a 3-dimensional array and you want to extract the minimum for which 20% of the array is covered excluding zeroes.
The following code snippet can help with the issue
x = C_holllowtumor; %A random 3-dimensional array
y = sort(x(:),'ascend'); % Sorting the array in ascending order
y = nonzero(y); % Extracting the non-zero elements
Result = y(1:ceil(length(y)*0.2)); % Getting the 20% elements
%Result(end) --this would give a single element from the Result.
To know more about sorting and excluding a particular element please refer to the following links.
Hope this helps
Thanks
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!