How to get subset of data from given thresholds?

조회 수: 1 (최근 30일)
Macy
Macy 2023년 2월 28일
댓글: Macy 2023년 2월 28일
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

채택된 답변

Askic V
Askic V 2023년 2월 28일
편집: Askic V 2023년 2월 28일
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), : );

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by