|
Reeslou |
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 26.08.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.09.2020, 13:22
Titel: Verschachtelte Schleife
|
|
|
|
|
Hallo,
ich muss eine kohortenspezifische Erwerbsquotenprojektion durchführen. Dabei ergibt sich die Fortschreibungsformel für das Jahr t+1 wie folgt:
EWQ der 16-jährigen in 2020 = EWQ der 15-jährigen in 2019 + Eintrittswahrscheinlichkeit der 15-Jährigen * (EQ_max - EWQ der 15-jährigen in 2019).
Die Eintrittswahrscheinlichkeit ist gespeichert in einer 61x1-Matrix, variiert also mit den Altersjahren, ist aber unabhängig von t (wird als konstant angenommen). Das heißt pro Spalte muss auch diese Eintrittswahrscheinlichkeit immer durchlaufen werden...EQ_max entspricht annahmegemäß 95 Prozent.
Für alle t+1, t+2, etc...
ergibt sich die Erwerbsquote z.B. in t+1 der jeweiligen Personen im Alter von x aus der Erwerbsquote der Personen im Alter von x-1 zum Zeitpunkt t.
Die Schleife muss also immer eine Spalte Zeile für Zeile anhand der Formel abarbeiten, um dann in die nächste Spalte zu springen und wieder anhand der Fortschreibungsformel abarbeiten usw usw.
Anhand der Formel wird ja deutlich, dass zur Berechnung des ersten Projektionsjahres die Daten aus dem Basisjahr (hier 2019) verwertet werden, für das zweite Projektionsjahr dann die Daten aus dem ersten Projektionsjahr (hier 2020) usw...deshalb müssen eben zuerst in jeder Spalte alle Zeilen abgearbeitet werden, bevor man in die nächste Spalte (ins nächste Projektionsjahr) springen kann...
Wenn ich das jetzt pro Spalte machen will, sieht das wie folgt aus (und funktioniert auch)...ich muss das aber eben als Schleife haben und bekomme, egal was ich versuche, entweder Dimensionsfehler oder falsche Ergebnisse...
[usw.]
War das halbwegs verständlich?
Ich wäre dankbar um jede Hilfe..
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 15.09.2020, 13:37
Titel:
|
|
Hallo,
wie ist J definiert?
Wie soll die letzte Iteration aussehen?
Zitat: |
egal was ich versuche, entweder Dimensionsfehler oder falsche Ergebnisse... |
Wenn du deine Ansätze mitsamt der jeweiligen Probleme postest, ersparst du uns das Herumprobieren.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Reeslou |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 26.08.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.09.2020, 13:46
Titel:
|
|
Harald hat Folgendes geschrieben: |
Hallo,
wie ist J definiert?
Wie soll die letzte Iteration aussehen?
Zitat: |
egal was ich versuche, entweder Dimensionsfehler oder falsche Ergebnisse... |
Wenn du deine Ansätze mitsamt der jeweiligen Probleme postest, ersparst du uns das Herumprobieren.
Grüße,
Harald |
Hallo Harald,
bitte entschuldige..
J ist definiert als die Altersjahre von 15-75, d.h. J=61
Die letzte Iteration soll für das Projektionsjahr 2070 sein. Oder was meinst du?
Einer der Versuche war z.B der hier:
T sind in diesem Falle die Projektionsjahre. Allerdings müsst eich für entry_fem ja auch noch einen Index einführen?!
Sowas wie:
VOR die for-Schleife zum initialisieren und dann IN die for-Schleife
Ich bin noch total neu mit Matlab und habe soviel romprobiert, dass ich erstens total verwirrt bin und zweitens die Hälfte meiner Versuche nicht mehr nachvollziehen kann
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 15.09.2020, 14:14
Titel:
|
|
Hallo,
Zitat: |
Die letzte Iteration soll für das Projektionsjahr 2070 sein. |
Die Information hilft mir wenig. Gemeint war, wo das Muster nach [usw.] beendet werden soll.
Die Schleifenvariable ist generell ein einziger Wert und typischerweise der, der sich verändert. Wenn nur ein Wert variiert werden soll und die anderen sich direkt daraus ableiten (z.B. durch +1 oder -1), dann brauchst du auch nur eine Schleife. Hier z.B.:
Zitat: |
Ich bin noch total neu mit Matlab |
Dann mal das MATLAB Onramp durcharbeiten.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|