how to calculate mean of interrupted data
이전 댓글 표시
how can one program matlab to calculate the zero mean of a time series but only for values before a NaN value and then values after a NaN value. i am not talking about the omitnan function.
댓글 수: 4
Dyuman Joshi
2023년 5월 11일
%Indices of NaN values
idx = find(isnan(data))
%indices of values before and after NaN, and removing indices overlapping
%that of NaN values, in case there are consecutive NaN values
k=setdiff([idx-1 idx+1],idx)
out = data(k);
%zero mean
out = out-mean(out)
osasunmwen efosa
2023년 5월 11일
I am not sure if I understand what you want to achieve.
Let's assume this to be your data -
A=1:20;
A([2 4 8 16]) = NaN
What should be the output for this?
osasunmwen efosa
2023년 5월 12일
편집: osasunmwen efosa
2023년 5월 12일
채택된 답변
추가 답변 (1개)
Hello,
You could try something like this:
A=[1:10]; % For the example
A(5)=NaN; A(8)=NaN
R=[1 find(isnan(A)) length(A)]; % Indices where the nans are + the beggining and end of vector
MeanVec=zeros(size(R,2)-1,1); % Initialize vector where the means will be stored
for i=1:length(R)-1 % Loop through the different sections between nans
F(i)=nanmean(A(R(i):R(i+1)));
end
F
카테고리
도움말 센터 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!