2016-03-20 3 views
-1

Ich modelliere derzeit die Dynamik eines Eisschildes. Ich habe deshalb ein Skript erstellt, das das Volumen eines Eisschildes über die Zeit (in 500-Schritten) aufzeichnet. Das Volumen steigt zunächst schnell an, aber die Kurve flacht später ab, da sich das Volumen nicht mehr ändert und der Eisschild sich im stabilen Zustand befindet ... seine Form ist vertraut wie y = ln (x) ... Ich habe also 2 Ausgänge Arrays, nämlich a) vol_time mit der Zeit in Schritten von 500 Jahren und b) vol mit dem entsprechenden Volumen. Jetzt läuft das Programm bis zu einer festen Zeit die ich eingefügt habe (200 000 Jahre) aber ich möchte das Programm nur so lange laufen lassen bis dieser steady state erreicht ist. Meine Frage ist also: Wie kann ich das Programm nur so lange laufen lassen, bis sich die Lautstärke mit nur 0,002% pro 500 Jahre ändert?Matlab: Programm ausführen, bis die Bedingung erfüllt ist

Dank

+1

Ich nehme an, Sie haben eine 'for' Schleife? Ist Ihnen "break" bekannt, mit dem Sie die Schleife vor Erreichen der letzten Iteration verlassen können? Bitte fügen Sie einen Beispielcode in Ihre Frage ein, um die Struktur Ihres Codes zu demonstrieren. – Daniel

Antwort

0

Sie Äther können Ihre Eisdecke Dickenberechnung in einer while-Schleife wickeln, so der Code die Berechnung, bis der 0,0002% Zustand oder Sie eine Schleife durch die ganzen 200,000 Jahre erfüllt führt. Eine andere Option könnte sein, eine if-Prüfung hinzuzufügen, um das Ende Ihrer Eisblechdickenberechnung zu beenden. Wenn Sie break in if eingeben und dann hinzufügen, wird auf diese Weise die Schleife beendet.

+0

Nicht genug Rep zu kommentieren bedeutet nicht, mit Ihrem Kommentar zu antworten. Antworten ohne Code sind nicht sehr nützlich. – excaza