transition probability matrix and for loop

4 vues (au cours des 30 derniers jours)
Aleksandar
Aleksandar le 31 Jan 2024
Commenté : Voss le 1 Fév 2024
I would like to run transition matrix with a rolling window, such that it ensures the transitions for consecutive periods such as: 31-12-17 (start date) to 31-12-18, then move by one month : 31-01-18 (start date) to 31-01-19 and so on, and save data in each transMat so that it can be retrieved later
That is what works
"transMatRD = zeros(5);
UD=unique(data.Date,'stable');
UD=sort(UD);
for i=1:25
[transMatRD] = transprob(data,'startDate',UD(i),'endDate',UD(i+12),'algorithm',algorithm,'snapsPerYear',snaps,'labels',{'A','B','C','D','E'})
disp(['The initial date: ',string(sUD3(i)),' the end date: ',string(sUD3(i+12)), 'transitions: ', string(snaps)])
end"
This works fine if I run it but I cannot save all transMatRD matrices (other than the last one).
If I try this however
"
for i=1:25
[transMatRD(i)] = transprob(data,'startDate',UD(i),'endDate',UD(i+12),'algorithm',algorithm,'snapsPerYear',snaps,'labels',{'A','B','C','D','E'})
"
I get this error:
"Unable to perform assignment because the left and right sides have a different number of elements."
I would like to save all transition matrices in order to perform operations on them (average, sum, weight...)

Réponse acceptée

Voss
Voss le 31 Jan 2024
transMatRD = cell(5); % 5x5 cell array
for i=1:25
transMatRD{i} = transprob(...)
end
  2 commentaires
Aleksandar
Aleksandar le 1 Fév 2024
Thank you, that's it!
Voss
Voss le 1 Fév 2024
You're welcome!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Dates and Time dans Help Center et File Exchange

Produits


Version

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by