Extracting multiple row values (with unequal range) in a column separately
Show older comments
I have a csv file 28526 x 1. These are a single variable for 45 years. I want to find the mean of 45 years (45 x1) seperately. But all 45 years unequal ranges. How to find the mean?
-----------------------------------------------------------------------------------
clc;clear all
a = readmatrix('His_wind.csv');
b = a(20279:20981, 1);
b(b == 9999) = NaN;
c = b/10;
d = mean(c,'omitnan');
--------------------------------------------------------------------------------------
Here I am selecting each range of values and calculating mean seperately for each year. Please advice on how to do it together.
Accepted Answer
More Answers (1)
dat=readmatrix('saf_wind.csv');
dat(dat==9999)=[];
whereIsNan=find(isnan(dat));
yourMeans=zeros(1,numel(whereIsNan)+1);
for partNr=1:numel(whereIsNan)+1
if partNr==1
currVec=dat(1:whereIsNan(partNr(1))-1);
elseif partNr==numel(whereIsNan)+1
currVec=dat(whereIsNan(end)+1:end);
else
currVec=dat(whereIsNan(partNr-1)+1:whereIsNan(partNr)-1);
end
yourMeans(partNr)=mean(currVec);
end
Categories
Find more on Data Preprocessing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!