How do I find the value for which x% of the array is covered?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Lieke Pullen
le 19 Jan 2022
Modifié(e) : Prahlad Gowtham Katte
le 25 Jan 2022
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 commentaires
Réponse acceptée
Prahlad Gowtham Katte
le 25 Jan 2022
Modifié(e) : Prahlad Gowtham Katte
le 25 Jan 2022
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 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!