How to produce a matrix that averages the top 5 values, for a corresponding year?
1 次查看(过去 30 天)
显示 更早的评论
I would like to produce an average of the top 5 values (on the 5th column, blue) for the corresponding year. I have attached my initial data as an attachment. My difficulty is that the matrix has multiple columns, so how do I choose that column (circled in blue), to calculate averages?
0 个评论
采纳的回答
KSSV
2018-5-10
Let A be your data of dimensions n*4. A has n number of rows and four columns. YOu can extract fourth column from A using.
flows = A(:,4) ; % This gives you fourth column
years = A(:,1) ; % This extracts the years from the data
% GEt mean of top five elements
iwant = mean(flows(1:5)) ;
If you have multiple years in the data, then you need to extract the respective year flows and get mean of top five values.
flows_1938 = flows(years==1938) ; % This gives flows of the year 1938
iwant_1938 = mean(flows(1:5)) ;
2 个评论
KSSV
2018-5-10
flows = A(:,4) ; % This gives you fourth column
years = A(:,1) ; % This extracts the years from the data
% GEt years alone
[Y,ia,ib] = unique(years) ;
NY = length(Y) ; % number of years
iwant = zeros(N,2) ;
for i =1:n
F = flows(years==Y(i)) ;
if length(F)>5
iwant(i,:) = [Y(i) mean(F(1:5))] ;
else
iwant(i,:) = [Y(i) mean(F)] ;
end
end
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Biomedical Signal Processing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!