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!