Extract data above threshold from groups

조회 수: 1 (최근 30일)
Elin Jacobs
Elin Jacobs 2022년 5월 4일
편집: Elin Jacobs 2022년 5월 5일
I'm trying to extract the y-data that fall into groups (bins) on the x -axis. Ideally, I want to set any y-values that are below the 90th percentile whitin a group to NaN (i.e. I want the end result to be a 6113x1 vector). I have started the following code to bin into groups , but now I am stuck.
load('xydata.mat') %
edges = (min(pp):20:max(pp));
[N, edges, bin] = histcounts(pp, edges);
figure
gscatter(pp,cc,bin)

채택된 답변

Chunru
Chunru 2022년 5월 5일
load('xydata.mat')
edges = (min(pp):20:max(pp));
[N, edges, bin] = histcounts(pp, edges);
figure
gscatter(pp,cc,bin)
%whos
y= pp;
ugroups = unique(bin);
for i=1:length(ugroups)
idx = bin == ugroups(i); % data index for the group
if ugroups(i) == 0 % not assigned to any group
y(idx) = nan;
else
ybin = y(idx);
pct = prctile(ybin, 90); % 90 percentile
ybin(ybin>pct) = nan;
y(idx) = ybin;
end
end
[N1, edges, bin] = histcounts(y, edges);
figure
gscatter(pp,cc,bin)
% whos
figure
plot(1:32, N, 'r', 1:32, N1, 'b')
sum(N)
ans = 6105
sum(N1)
ans = 5498
  댓글 수: 1
Elin Jacobs
Elin Jacobs 2022년 5월 5일
편집: Elin Jacobs 2022년 5월 5일
Thank you very much!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Networks에 대해 자세히 알아보기

제품


릴리스

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by