|
arise |

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 02.05.11
|
 |
|
 |
Wohnort: Zürich
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.05.2011, 09:32
Titel: For Schleife
|
 |
Hallo
Ich habe ein Problem mit einer Schleife...
Ich muss ja vor der Schleife die Variable E definieren aber der Output nach der Schleife ist immernoch E = 1...Warum?
Gruess Arise
|
|
|
|
|
eupho |

Forum-Meister
|
 |
Beiträge: 777
|
 |
|
 |
Anmeldedatum: 07.01.09
|
 |
|
 |
Wohnort: Marburg
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 02.05.2011, 09:49
Titel:
|
 |
Deinen gesamten Code finde ich sehr seltsam..
erstellt einen Vektor der von z in -1er Schritten bis z-invtime läuft. Die Summe davon ist nur 0, wenn z = invtime ist.
Hier überschreibst du E, nutzt aber gleichzeitig einen alten Wert von E (der ja zumindest im ersten Schleifendurchlauf noch 1 ist. Passt das?. C gibt es garnicht? Was ist D?
Benutze mal den Debugger und schaue dir an, ob er überhaupt in die if-Bedingung reinkommt.
|
|
|
arise |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 02.05.11
|
 |
|
 |
Wohnort: Zürich
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.05.2011, 09:56
Titel:
|
 |
Zum ersten Teil: Das ist für einen Vektor, der 0 und 1 hat. Es soll nur weitergehen, falls die 4 WErte(invtime) vorher 0 sind. Somit sollte das gehen oder?
Zum zweiten: Doch C gibt es schon...der Code ist noch länger... Wie muss ich denn das machen mit dem Überschreiben...Ich dachte man muss vor der Schleife den Wert definieren und dann wird er in der Schleife geändert...
D ist ein 0 1 Vektor ( 1 x 1305)
Der Debugger hab ich noch nie benutzt, schaue mir das Mal an, ob ichs hinkriege...
Danke für deine Hilfe...
|
|
|
arise |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 02.05.11
|
 |
|
 |
Wohnort: Zürich
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.05.2011, 10:10
Titel:
|
 |
...habs jetzt mit dem Debugger angeschaut und wollte mit
in die Werte schauen, die die Schleife annimmt aber dann kommt als Output
Was ist mein Fehler?
Gruss
|
|
|
arise |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 02.05.11
|
 |
|
 |
Wohnort: Zürich
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.05.2011, 09:51
Titel:
|
 |
Habe noch eine Frage:
Der Debugger zeigt mir jetzt an, dass die Schleife gar nicht durchlaufen wird bzw. z nur den ersten Wert annimmt, wieso?
Anmerkung: Returns ist ein 1305 x 1 Spaltenvektor, wie auch D
Danke für die Hilfe
|
|
|
eupho |

Forum-Meister
|
 |
Beiträge: 777
|
 |
|
 |
Anmeldedatum: 07.01.09
|
 |
|
 |
Wohnort: Marburg
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 03.05.2011, 09:54
Titel:
|
 |
Gib mal in die Kommandozeile:
D(6)
und
D(1305)
ein. In diesem Bereich (mit 1er Schrittweiten) läuft die Schleife..
|
|
|
arise |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 02.05.11
|
 |
|
 |
Wohnort: Zürich
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.05.2011, 09:57
Titel:
|
 |
Beide WErte sind 0, da fast alle Werte von D 0 sind aber im Debugger sollte er ja in der Schleife immer wieder hoch und runter springen (der grüne Pfeil). Das tut er nicht. ER geht durhc als wäre keine Schleife da und Z ist 1x1 Vektor mit dem WErt 0
|
|
|
eupho |

Forum-Meister
|
 |
Beiträge: 777
|
 |
|
 |
Anmeldedatum: 07.01.09
|
 |
|
 |
Wohnort: Marburg
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 03.05.2011, 10:08
Titel:
|
 |
Lies dir mal die Grundlagen zu Schleifen durch, das ist die einfachste Lösung, anstatt hier nach und nach die Fehler heraus zu suchen.
Deine Schleife läuft von 0 bis 0, also garnicht. Du musst an deiner Schleifenbedingung etwas ändern.
|
|
|
arise |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 02.05.11
|
 |
|
 |
Wohnort: Zürich
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.05.2011, 10:15
Titel:
|
 |
Hab ich schon gemacht deshalb frage ich hier. Aber im Grundsatz ist der erste und der letzte WErt 0 aber dazwischen nicht, dann sollte er sie durchlaufen. Habe jetzt den Schlusspunkt so angepasst, dass es bei einer 1 aufhört und jetzt durchläuft er die Schleife genau 2 Mal. Aber er sollte doch so jeden Wert Intervall annehmen und nicht nur 0, weil die erste und letzte 0 sind...
|
|
|
eupho |

Forum-Meister
|
 |
Beiträge: 777
|
 |
|
 |
Anmeldedatum: 07.01.09
|
 |
|
 |
Wohnort: Marburg
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 03.05.2011, 10:36
Titel:
|
 |
|
|
arise |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 02.05.11
|
 |
|
 |
Wohnort: Zürich
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.05.2011, 10:42
Titel:
|
 |
das habe ich jetzt auch grad gemerkt
Das geht jetzt.
Danke
Ich habe noch eine klein Grundsatzfrage zu Schleifen
Ich habe in der for Schleife eine Zuweisung die ich mit einer Variablen definiere. Damit diese Variable erkannt wird muss ich sie vor der Schleife schon mal definieren, z. B. als 1. Dann lass ich es laufen aber dann ist der Output der Variable 1 und sie wird nicht überschrieben...
was mache ich da falsch?
|
|
|
eupho |

Forum-Meister
|
 |
Beiträge: 777
|
 |
|
 |
Anmeldedatum: 07.01.09
|
 |
|
 |
Wohnort: Marburg
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 03.05.2011, 10:46
Titel:
|
 |
Du überschreibst den Wert E in jedem Schleifendurchlauf aufs neue. Der alte Wert von E wird nicht beachtet.
|
|
|
arise |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 02.05.11
|
 |
|
 |
Wohnort: Zürich
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.05.2011, 11:03
Titel:
|
 |
Ich habe jetzt endgültig das Problem gefunden: Die Schleife läuft sofern ich natürliche Zahlenabfolgen nehme z.B. 1 bis 1000 aber ich möchte, dass Matlab die Schleife mit Werten des Vektors D durchläuft dessen Wert unregelmässig abwechselnd 0 und 1 ist. WEnn ich das mache durchläuft er die Schleife nicht mehr. Was muss ich ändern, dass Matlab auch Schleifen mit Vektorwerten macht.
so nimmt er einen 1300 x 1 Vektor ich will aber 1300 mal einen 1 x1 Vektor der den Wert der jeweiligen Position von D annimmt...
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 03.05.2011, 16:44
Titel:
|
 |
|
|
arise |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 02.05.11
|
 |
|
 |
Wohnort: Zürich
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.05.2011, 10:36
Titel:
|
 |
Danke sehr, das klappt jetzt...
Habe aber immer noch das Problem, dass E in der Schleife nicht überschreiben wird...
Es durchläuft die Schleife aber E wird nicht angepasst wie es sollte sondern bleibt wie vorher definiert...
Weiss jemand wieso?
Gruess arise
P.S. Habe im DEbugger gesehen, dass diese Zeile gar nicht angeschaut wird sondern einfach übersprungen...
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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 - 2025
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.
|
|