How to get subset of data from given thresholds?

1 visualización (últimos 30 días)
Macy
Macy el 28 de Feb. de 2023
Comentada: Macy el 28 de Feb. de 2023
Please help, here is a snippet of code. There are three different thresholds that I have to make subsets of data for:
1)NZE > 0.25
2)NZE > 0.5, DNS < 30% of max DNS
3)NZE > 0.5, |Percent| < 20% (make sure to do absolute value)
I am not sure how to write out the last two. Because there are two boundaries, I am struggling on how to write it. If I had to guess I would do the following but I know it is not correct:
sub = dat(dat(:,10)>0.5,:)&dat(dat(:,9)<0.2*max(:;9),:);
sub = dat(dat(:,10)>0.5,:)&dat(abs(dat(:,11)<0.2,:));;
Thank you.
dat = load('something random');
dat(:,12) = 1:size(dat,1);
names = {'DNS' 'NZE' 'Percent'};
columns = [9 10 11];
for i=1:3
if(i==1) % NZE > 0.25 %}
sub = dat(dat(:,10)>0.25,:); %} This section is correct
dat_1 = sub; %}
end
if(i==2) % NZE > 0.5, DNS < 30% of max DNS
sub = %??? Not sure of how to do this
dat_2 = sub;
end
if(i==3) % NZE > 0.5, |Percent| < 20%
sub = %??? Not sure of how to do this
dat_3 = sub;
end

Respuesta aceptada

Askic V
Askic V el 28 de Feb. de 2023
Editada: Askic V el 28 de Feb. de 2023
Did you try this approach?
DNS = dat(:,9);
NZE = dat(:,10);
PER = dat(:,11);
% 1.
sub = dat(NZE>0.25,:);
%2.
sub = dat( (NZE>0.5) & (DNS<0.3* max(DNS)), : );
% 3. check percent column (is it 20% or 0.2)
sub = dat( (NZE>0.5) & (abs(PER)<20), : );

Más respuestas (0)

Categorías

Más información sobre Get Started with MATLAB en Help Center y File Exchange.

Productos


Versión

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by