Hi, i havecode below which ouputs given values independently. however, i want the ouputs to be under one matrix,what can i add to the code to do this job. B is an n by 1 matrix say B=[1:1:24]'. How can I collect all the values of Hourly_mean to form one matrix? kindly assist. Thank you
B=[1:1:576]'
for k=1:1:numel(B)
Hourly_mean=mean(B(k:24:end))
end
[Hourly_mean]

 채택된 답변

Fangjun Jiang
Fangjun Jiang 2023년 1월 19일

0 개 추천

B=[1:1:576]';
mean(reshape(B,24,[]))
ans = 1×24
12.5000 36.5000 60.5000 84.5000 108.5000 132.5000 156.5000 180.5000 204.5000 228.5000 252.5000 276.5000 300.5000 324.5000 348.5000 372.5000 396.5000 420.5000 444.5000 468.5000 492.5000 516.5000 540.5000 564.5000

댓글 수: 3

okoth ochola
okoth ochola 2023년 1월 20일
Hi, thank you for your answer however reshape() function splits the matrix by picking the first 24 values consecutively, while my questions requires the code to pick the first value then the second value in steps of 24 then it picks another till the end of the matrix. Do you have any ideas?
Let's take a smaller example that demonstrates the technique. Say I want to take the mean of every 6th element of B. We can reshape B into a matrix.
B = 1:24;
C = reshape(B, 6, 4)
C = 6×4
1 7 13 19 2 8 14 20 3 9 15 21 4 10 16 22 5 11 17 23 6 12 18 24
Now take the mean along the 2nd dimension.
D = mean(C, 2)
D = 6×1
10 11 12 13 14 15
Spot check that D is correct by manually computing the mean of the 3rd, 9th, 15th, and 21st element of B. Does that match D(3)?
sum(B(3:6:24))./4
ans = 12
Fangjun Jiang
Fangjun Jiang 2023년 1월 20일
@Steven Lord, good catch! mean(C,2) is more likely the needed outcome than mean(C).

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

제품

릴리스

R2016a

태그

질문:

2023년 1월 19일

댓글:

2023년 1월 20일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by