|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.11.2009, 12:44
Titel: Schleife kreieren
|
 |
Hallo!
Habe Basiskenntnisse in Matlab und brauche ihre Hilfe! Wie kann ich ein Algorithmus kreieren, der folgende Berechnungen durchführt.
Ich habe einen Vektor X von Zufallsvariablen von 10 bis 70 und anderen Y von 0 bis 1. X und Y hat die gleiche Dimension. Wenn die Zufallsvariable von X größer als 60 ist, soll der Algorithmus zwei nächste Werte von Vektor Y nehmen und die Iteration dann nach zwei Schritten wieder fortsetzen, ungeachtet dessen, dass der nächste Wert wieder größer als 60 sein kann . Wenn die Zufallsvariable kleiner als 60 ist wird Null geschrieben.
Z.B X=[50, 70, 65, 59, 49]
Y=[ 0.1, 0.1, 0.2, 0.3, 0.4]
Der Algorithmus durchsucht den Vektor X und findet, dass zweites Element von X größer als 60 ist. Er nimmt dann zweites und drittes Element von Y und setzt die Iteration nach zwei Elementen wieder fort. Der neu kreierte Vektor Z hat dann die Werte Z=[0, 0.1, 0.2, 0,0]
Danke!
|
|
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.11.2009, 14:59
Titel:
|
 |
Hallo,
mir zumindest ist der Algorithmus nicht klar.
- Soll Z die selbe Größe haben wie X und Y
- Sehe ich es richtig, dass im Prinzip der Vektor Y gebildet wird durch
Z(i) = Y(i) falls X(i)>60 oder X(i-1)>60
Titus
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.11.2009, 15:59
Titel:
|
 |
Z soll die gleiche größe haben wie X und Y.
Z(i) = Y(i) falls X(i) > 60
ansonsten Z(i) = 0
aber wenn X(i) >60 dann auch Z(i+1)=Y(i+1) und Z(i+2) = Y(i+2)
und die nächte Iteration findet am X(i+3) statt.
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.11.2009, 16:47
Titel:
|
 |
Hallo,
o.k., wie wäre es mit
Ciao,
Titus
Zuletzt bearbeitet von Titus am 05.11.2009, 17:24, insgesamt einmal bearbeitet
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.11.2009, 17:15
Titel:
|
 |
Hi,
Danke für den Vorschlah! Aber nach Deinem Code bekomme ich die Antwort
Z =
0 0 0 0 0
So soll es nicht sein. Z sollete so aussehen: [0, 0.1, 0.2, 0,0]
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.11.2009, 17:24
Titel:
|
 |
Hallo,
meine Bedingung war falsch, hab's korrigiert ...
Allerdings: müsste der letzte nicht 0.4 sein? Da der dritte ja auch größer als 60 ist, oder muss der ignoriert werden, da wir noch den vorherigen Schritt abarbeiten ...?
Noch eine Nachfrage: was ist mit der 0.3, oben schreibst Du Y(i+1), Y(i+2), was die 0.3 wäre, im "Lösungsvektor" aber steht eine 0? Vielleicht gibst Du doch noch ein etwas ausführlicheres Beispiel, um die Fragen zu klären ...
Titus
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.11.2009, 19:09
Titel:
|
 |
Hi,
Vielen Dank, dass Du mir hilfst:) Und sorry, dass ich meine Gedanken so undeutig formuliere.
In unserem Beispiel muss der Algorithmus im Vektor X den Wert größer 60 suchen. Wenn er den Wert größer 60 findet X(i) soll er in Lösungsvektor Z(i) den Wert Y(i) einschreiben und auch Y(i+1). Gleichzeitig, wenn ein Wert größer 60 gefunden wird, untersucht er nicht den nächsten Wert in Vektor X, sondern fingt ab i+2 weiter an.
Ein Beispiel aus dem Leben sieht so aus: Ich kaufe den Gut nur dann, wenn der Preis größer als 60 ist. Und halte den Gut zwei Tage. Nach zwei Tagen verkaufe ich den Gut, ungeachtet des Preises auf dem Markt. Auch wenn am nächsten Tag der Preis höher als 60 ist, kaufe ich nicht zusätzlich, weill ich nur ein Mal kaufen kann. Danach muss ich mein Gewinn/ Verlust kalkulieren. (Vektor Z).
|
|
|
|
|
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.
|
|