How do I get each array produced by a for loop iteration to be added as a different column in matrix?
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Maren Hale
il 25 Giu 2021
Commentato: Maren Hale
il 25 Giu 2021
I have a for loop that goes through the years 2000–2020 and picks out the temperature and datenum value for each day in the specified year. The temperature is stored in an array, p1, and the datenums are stored in an array, p2. p1 and p2 have different values with each loop iteration/each year, and I'd like to store those yearly values as columns in a matrix (olTempMatrix for temperatures and olDateMatrix for datenums). The problem I'm having with my for loop is that it only stores the values for the final year (2020), rather than storing each year in its own column, so my two matrices end up with the same set of values in every column.
My code is reproduced below, and the file with olDateNums and olYears is attached so you can reproduce my results.
There must be a simple change I can make here to get my matrices to have each column fill with the data from each different year... but Im stuck! Thanks in advance for the help.
[olYr,olMo,olDay] = datevec(olDateNums);
olTempMatrix = NaN(365,21,'single');
olDateMatrix = NaN(365,21,'single');
for olYears = 2000:2020
p = find(olYr == olYears);
p1 = olTemps(p) %this produces an array of daily avg temp for each year
p2 = olDateNums(p) %this produces an array of datenums for each year
for columns = 1:21 %Make each array into one column of a matrix
olTempMatrix(:,columns) = p1;
olDateMatrix(:,columns) = p2;
end
end
olTempMatrix
olDateMatrix
0 Commenti
Risposta accettata
Scott MacKenzie
il 25 Giu 2021
This should work:
k = 1;
for olYears = 2000:2020
p = find(olYr == olYears);
p1 = olTemps(p) %this produces an array of daily avg temp for each year
p2 = olDateNums(p) %this produces an array of datenums for each year
olTempMatrix(:,k) = p1;
olDateMatrix(:,k) = p2;
k = k + 1;
end
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!