|
|
Folge erstellen mit IF und For-Schleife |
|
Ibbes85 |

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 31.07.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.07.2012, 17:05
Titel: Folge erstellen mit IF und For-Schleife
|
 |
Hallo
ich bin gerade dabei mich in Matlab einzuarbeiten, ich möchte eine Zahlenfolge erstellen, welche vom ersten zum zweiten Wert konstant bleibt, dann vom zweiten auf den dritten Wert um einen vordefinierten Wert subtrahiert wird und dann wieder von 3. auf 4. den Wert konstant hält. SPRICH: [1 1 0.5 0.5 0 0 -0.5 -0.5.....]. Ich wusste nicht, wie ich dies am einfachsten anstelle. Ich habe es versucht mit einer If-Schleife integriert in einer For-Schleife. Aber als Ergebnis bekomme ich immer noch meinen Einheitsvektor heraus, nur der letzte Eintrag des Vektors ist subtrahiert. Hier mein Quellcode:
for n = 1:1:10
A = ones(1,11)*3;
if A(n)== A(n+1)
A(n+2)= A(n+1)-0.5;
elseif A(n)> A(n+1)
A(n+2) = A(n+1);
else
A(n+2)= 0;
end
end
Woran liegt das? Es gibt bestimmt auch eine einfachere Methode solch eine Folge zu erstellen? Ich bin für jede Hilfe dankbar.
Gruß Ibbes
|
|
|
|
|
flashpixx |

Forum-Guru
|
 |
Beiträge: 355
|
 |
|
 |
Anmeldedatum: 19.04.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.07.2012, 17:16
Titel:
|
 |
|
|
flashpixx |

Forum-Guru
|
 |
Beiträge: 355
|
 |
|
 |
Anmeldedatum: 19.04.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.07.2012, 17:28
Titel:
|
 |
eine Matrix ist auch "nur" ein Vektor
|
|
|
flashpixx |

Forum-Guru
|
 |
Beiträge: 355
|
 |
|
 |
Anmeldedatum: 19.04.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.07.2012, 18:00
Titel:
|
 |
|
 |
|
Es wäre durchaus hilfreich, wenn Du Deine Antworten auch in diesem Thread postest und mir nicht eine PN mit Deinen Antworten schickst.
Du kannst wie Du es in dem Kopf der Schleife machst die Art und Weise der Zahlenfolge entsprechend setzen, durch die Operation, die ich dargestellt habe, kann ich die Werte um eine Stelle verschieben. Du kannst Dir nun ausrechnen wie Du Deine Vektoren gestallten musst, damit Du z.B. über eine Summe (Differenz, Multiplikation, Division) Deinen gewünschten Zielvektor / - matrix erreichen kannst.
Deine Forschleife durchläuft die Zahlen von 1 bis 10 (den mittleren Wert kann in diesem Fall auch weg lassen) und nun ziehst Du immer bei zwei benachbarten Werten 0.5 ab, sofern die vorher benachbarten Werte gleich sind, das sind sie aber, denn Dein Vektor wird bei jeder Iteration mit 3 initialisiert. Du fasst somit immer die Werte an, die mind. 3 Elemente auseinander liegen und noch nicht verändert wurden, d.h. ich kann aber dadurch dass ich den Initialisierungsvektor nehme und direkt die passenden Stellen modifizieren auch das Ergebnis erreichen
Der Vektor b ist letztendlich ein Nullvektor, von dem ich immer bei jedem dritten Element 0.5 setze.
Anhand der Beispiele kannst Du Dir nun überlegen, wie sich Dein Vektor ergeben muss
|
|
|
|
|
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.
|
|