필터 지우기
필터 지우기

Problem in calculating median and average values at specific intervals.

조회 수: 3 (최근 30일)
Zhou Ci
Zhou Ci 2021년 9월 9일
편집: Zhou Ci 2021년 9월 14일
Hello everyone,
My text file contains three parameters Temp (in Kelvin), Ph, and Rad values. These values are extracted from hdf file. For every 1K interval there are several phase pixels. For example at 250K there can be 5 pixels (1st pixel can be 2, 2nd pixel can be 3 and so on.
-All these 5 pixels have corresponding Rad values (e.g. 25, 35, 20 ,15, 32). I want to calculate median of these pixels corresponding to Temperature value. For example at 250K median of above five Radius values will be 25.
-Secondly at this temperature interval I also want the average of Phase values. For example if at 250K there are 5 pixels with values (2,3,4,3,3), average will be 3.
Please find attached data. I'll be very grateful for the help.
My code doesn't give me desired result.
temperature_rounded=round(Temp,0);
T=unique(temperature_rounded);
Z=NaN(size(T));
for n=1:numel(T)
L= temperature_rounded==T(n); %select all positions where the rounded temperature is a specific value
Z(n)=median(Radius(L));%calculate the median for this selection
end

채택된 답변

Matt J
Matt J 2021년 9월 9일
편집: Matt J 2021년 9월 10일
valid=(Phase~=0);
G=findgroups(round(Temp(valid),0));
Radius=Radius(valid);
Phase=Phase(valid);
medianRadius=splitapply(@median,Radius,G);
meanPhase=splitapply(@mean,Phase,G);
  댓글 수: 2
Zhou Ci
Zhou Ci 2021년 9월 10일
Hi Matt,
Using above lines of code gives me error at this line;
Radius=Radius(valid);
The logical indices contain a true value outside of the array bounds.
Secondly, is this typo error:
Phase=Phase(ivalid); % ivalid
Matt J
Matt J 2021년 9월 10일
편집: Matt J 2021년 9월 10일
Using above lines of code gives me error at this line;
Temp, Phase, and Radius are assumed by my solution to all be the same size.
Secondly, is this typo error:
Yes, I've fixed it.

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

추가 답변 (0개)

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by