Storing values in a matrix
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Mohammed Rabani
am 9 Mär. 2022
Beantwortet: Peter Perkins
am 9 Mär. 2022
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 Kommentare
Rik
am 9 Mär. 2022
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.
Akzeptierte Antwort
Rik
am 9 Mär. 2022
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 Kommentare
Weitere Antworten (1)
Peter Perkins
am 9 Mär. 2022
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 Kommentare
Siehe auch
Kategorien
Mehr zu Cell Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!