WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Verschachtelte Schleife und if-Bedingung

 

Findling1050
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 01.10.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.10.2020, 15:29     Titel: Verschachtelte Schleife und if-Bedingung
  Antworten mit Zitat      
Hallo!
Ich habe folgenden Code:
Code:
proj_fem=zeros(61,61);
proj_fem(:,1)=av_EWQ_fem_2019(:,1);

proj_fem(1,2:61)=0.95*EN_fem(1,1);
proj_fem(2,2)=proj_fem(1,1)+EN_fem(2,1)*(EQ_max_fem(1,1)-proj_fem(1,1)); %EWQ 16-17 für 2020

for spalte=1:60
    for zeile=1:60
        if (EN_fem(zeile,1)>0)
            proj_fem(zeile+1:61,spalte+1)=proj_fem(zeile,spalte)+(EN_fem(zeile+1,1).*(EQ_max_fem(1,1)-proj_fem(zeile,spalte)));
        end
        if (EX_fem(zeile,1)>0)
            proj_fem(zeile+1:61,spalte+1)=(1-EX_fem(zeile+1,1)).*proj_fem(zeile,spalte);
        end
    end
end
 


Mein Ziel war es, dass für jede Spalte (1-61) alle Zeilen bearbeitet werden, bevor zur nächsten Spalte gesprungen wird und dort wieder alle Zeilen abgearbeitet werden usw usw...Dabei stellen die Spalten Jahre dar, wobei die erste Spalte das Basisjahr ist und alle weiteren Spalte die jeweiligen Projektionsjahre. Die Zeilen stehen für die Altersjahre 15-74. Die Zu- und Abgangsraten (EN_fem und EX_fem) liegen für das Jahr 2019 für alle Altersjahre von 15-74 vor, es handelt sich bei den Variablen also um zwei Zeilenvektoren (jeweils 61x1).
Die Berechnung der einzelnen Elemente der Matrix erfolgt nun aber abhängig davon, ob EN_fem >0 oder EN_fem<0; Wenn EN_fem<0 ist gleichzeitig EX_fem>0.

Also nochmal genau was MATLAB machen soll: beginne in der zweiten Spalte in der zweiten Zeile (d.h. für Altersjahr = 16), checke ob EN_fem für die 16-Jährigen > 0. Wenn ja, benutze die erste Formel. Wenn nicht, nehme die zweite Formel. Mach das für alle Zeilen und springe dann zur nächsten Spalte.

Die Ergebnisse sind zwar realistisch, ich bin mir aber sehr unsicher, ob ich wirklich das programmiert habe, was ich haben möchte.

Kann mir da jemand helfen?

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.