Verfasst am: 25.07.2012, 11:40
Titel: Variable im Zeitverlauf ändern
Guten Morgen liebe Community,
entweder ich bin zu doof oder es ist zu einfach
Und zwar habe ich eine Variable die zu Beginn einen gewissen Wert hat und ab einer gewissen Zeit immer weiter um einen festen Wert reduziert werden soll.
Irgendwie so...sprich a soll immer den neuen, reduzierten Wert erhalten und im nächsten Zeitschritt wieder reduziert werden und dann wieder den neuen Wert bekommen.
Zwei Fehler hab ich hier gesehen bei dir:
Der Erste war das Abbruchkriterium und der zweite ist "a=10", somit rechnest du immer 10-x, du wirst also immer den gleichen Wert erhalten.
Vorweg, eine Funktion die "function"heißt ist glaub ich eher schlecht gewählt, da "function" hier als Schlüsselwort verwendet wird und nicht als Name selber verwendet werden sollte. Zu deinem Code:
Du bekommst in die Funktion nicht ein t sondern einen Vektor t rein mit mehreren Werten. Hier solltest du dann eventuell über die Werte (Index verwenden) laufen lassen.
Vergiss nicht "a" zuvor noch zu deklarieren, könnte sonst zu einem Problem führen falls der else Zweig zuerst ausgeführt werden sollte.
Wie willst du dann a=a-x; rechnen wenn du keinen vordefinierten Wert hast? x von irgendetwas abziehen ist wiederum irgendetwas oder doch nicht? ^^ Ist dann eher philosophisch zu beantworten.
Ne jetzt aber wieder zum Thema. Wenn bei dir zum ersten mal a=a-x berechnet werden soll, welchen Wert hat hier a vor der Subtraktion? Wenn dieser 10 ist, dann kannst du ja vor die for Schleife a=10; reinschreiben und fertig.
Ok, das war dann jetzt zu offensichtlich.
Klar muss ich vorher einen Wert vorgeben von dem man anschließend etwas abziehen kann
Jetzt wundert mich aber gerade noch etwas. Müsste der untere Graph nicht in die andere Richtung verlaufen, da ich den Wert ja reduziere.
Im Prinzip ist es ja nichts anderes als eine Geschwindigkeitsfunktion, in der ich die Beschleunigung reduziere. Somit müsste die Steigung doch eigentlich negativ sein oO.
EDIT::::
Ich habe mir gerade mal die Zeile a=a-x ausgeben lassen....a bleibt immer konstant auf einem Wert :-/
deklarierst du "a" beim ersten mal vor der for Schleife oder? Deine Werte in t sind aufsteigend sortiert oder? Also er geht nicht einmal in den if Zweig und dann wieder in den else Zweig?
Was anderes noch, willst du hier eigentlich für jedes t einen Wert in a stehen haben oder ein einziges a berechnen?
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
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.