Storing values in a matrix
9 ビュー (過去 30 日間)
古いコメントを表示
Hi,
I have a code which finds the daily average from the hourly values and stores them in a variable. I want to store this values in a matrix so I can use them elsewhere later. Please let me know.
for column = 2:width(cooling_load)
x = table2array(cooling_load(:,column));
for i = 0:364
for j=1:24
sumof =sumof + x(i*24+j+2,1);
end
avgg = sumof/24;
sumof=0;
daily(i+1)=avgg;
end
coolingload = daily'
end
4 件のコメント
Rik
2022 年 3 月 9 日
You already know how to index, so what is your question? You already know how to store values in an array based on the loop variable.
採用された回答
Rik
2022 年 3 月 9 日
You're already there:
for column = 2:width(cooling_load)
x = table2array(cooling_load(:,column));
for i = 0:364
sumof=0;
for j=1:24
sumof =sumof + x(i*24+j+2,1);
end
avgg = sumof/24;
daily(i+1,column-1)=avgg;
% ^^^^^^^^
% just this simple change
end
end
0 件のコメント
その他の回答 (1 件)
Peter Perkins
2022 年 3 月 9 日
This will be MUCH easier using a timetable. It's a one-liner:
>> tt = timetable(rand(100,1),'RowTimes',datetime(2022,3,9,1:100,0,0))
tt =
100×1 timetable
Time Var1
____________________ ________
09-Mar-2022 01:00:00 0.697
09-Mar-2022 02:00:00 0.40754
[snip]
13-Mar-2022 03:00:00 0.089853
13-Mar-2022 04:00:00 0.16103
>> ttDaily = retime(tt,'daily','mean')
ttDaily =
5×1 timetable
Time Var1
___________ _______
09-Mar-2022 0.56102
10-Mar-2022 0.43778
11-Mar-2022 0.49814
12-Mar-2022 0.57098
13-Mar-2022 0.43989
At this point, you can get the means from that daily timetable ...
>> dailyMeans = ttDaily.Var1
dailyMeans =
0.56102
0.43778
0.49814
0.57098
0.43989
... but I doubt you need to. Just leave them there, along with their dates.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Cell Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!