How I can perform a loop in order to calculate multiple means in a matrix based on multiple values?
조회 수: 2 (최근 30일)
이전 댓글 표시
Hello Matlab community! I am learning how to perform loops!
I am working with multiple years of meteorological information, and I would like to perform a loop in order to compute the mean by each hour of record, and after that concatenate every result in a single matrix. I have to say that the records are at hour 0, 3, 6, 9, 12, 15, 18 and 21.
I have been working in the next code, but without results:
m3=zeros(8,100);
interval=0:3:21; %these are the hours which the mean would be calculated
for i=1:8
XMINHOUR(i)=XMIN(find(XMIN(:,1) == interval(i)),:);
D_0(i)=XMINHOUR;
m3=mean(D_0);
end
I have attached to the present message the data (variable XMIN)
Thanks in advance for your support!
Miguel
I wanted to ask you
댓글 수: 0
채택된 답변
Andrei Bobrov
2017년 11월 8일
편집: Andrei Bobrov
2017년 11월 8일
>> [g,v] = findgroups(XMIN(:,1));
>> out = splitapply(@mean,XMIN,g);
or
[ii,jj] = ndgrid(findgroups(XMIN(:,1)),1:size(XMIN,2));
out = accumarray([ii(:),jj(:)],XMIN(:),[],@mean);
댓글 수: 2
Andrei Bobrov
2017년 11월 9일
[~,~,g] = unique(XMIN(:,1));
[ii,jj] = ndgrid(g,1:size(XMIN,2));
out = accumarray([ii(:),jj(:)],XMIN(:),[],@mean);
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!