|
|
Rechteckfunktion mit stochastischen Perioden |
|
susi26 |

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 18.11.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.11.2010, 17:46
Titel: Rechteckfunktion mit stochastischen Perioden
|
 |
Hallo,
ich möchte eine Rechteckfunktion mit stochastischen Perioden generieren. Mit square bekomme ich das nicht hin.
Die funktion sollte 365 (tage) lang sein. die perioden, sollten zwischen 8 und 13 (tage) sein. die funktion soll die werte +1 und -1 annehmen! ginge es prinzipiell auch, dass die Werte 0 und +1 annehmen?
Vielen Dank im Voraus,
eure susi
|
|
|
|
|
lilov |

Forum-Century
|
 |
Beiträge: 193
|
 |
|
 |
Anmeldedatum: 05.05.10
|
 |
|
 |
Wohnort: Bremerhaven
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.11.2010, 02:54
Titel:
|
 |
Hi Susi:)
bin mir nicht sicher ob du das meintest aber hier wäre eine eventuelle Lösung deines Problems ohne die Benutzung von square Funktion:
Probiere es mal aus...wenn Fragen sind einfach melden
Gruß,
lilov
|
|
|
lilov |

Forum-Century
|
 |
Beiträge: 193
|
 |
|
 |
Anmeldedatum: 05.05.10
|
 |
|
 |
Wohnort: Bremerhaven
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.11.2010, 03:02
Titel:
|
 |
ach, und wenn die Funktion aus 1 und -1 bestehen soll statt 1 und 0, dann einfach die Zeile mit zeros Funktion so umändern:
Gruß,
lilov
|
|
|
susi26 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 18.11.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.11.2010, 10:38
Titel:
|
 |
|
 |
|
hallo lilov!
Wow, vielen dank! hat mir echt sehr geholfen! genau so wollt ichs haben
wenn ich jetzt die perioden ändern möchte, auf zB 2 bis 5 Tage, dann ändere ich einfach diese zeile folgendermaßen:
L = 2+3*round(rand(ceil(365/2),1)); oder?
vielleicht ist es auch ein leichtes für dich, mir dann dabei zu helfen :
die einfache variante: eine rechteckfunktion zw. 0 und 1 bzw. -1 und 1 für eine fixe periode. zB 8 Tage! machte das bisher mit Excel und hab die Spalte eingelesen. mit square habe ich es so gemacht:
t = 1:1:365;
y = square(pi*0.125*t)';
liefert mir bei 8 tagen schöne werte, bei 7 tagen ist es da 1/7 viele kommastellen hat schon ungenauer. außerdem habe ich nur den Wertebereich -1 bis 1
Danke schon jetzt!!!!!!!!!!!!!!
lg Susi
Ach so, jetzt hab ich ein weiteres Problem erkannt:
ich will nun einen Spaltenvektor x mit 0.85 addieren, wenn mein y=square die Werte -1 hat. also mit excel mach ich so: =wenn(y=-1,x*0.85,x)
aber wie funktioniert es mit matlab??
So viele Fragen auf einmal...
|
|
|
lilov |

Forum-Century
|
 |
Beiträge: 193
|
 |
|
 |
Anmeldedatum: 05.05.10
|
 |
|
 |
Wohnort: Bremerhaven
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.11.2010, 13:00
Titel:
|
 |
|
 |
|
hi:)
kein Problem, ich helfe gerne, dafür ist es ja ein matlab forum. Weil Menschen Fragen haben
mir ist aufgefallen dass ich das falsch verstanden hatte. du wolltest Perioden zwischen 8 und 13 und nicht Perioden die entweder 8 oder 13 sind. Dann müsste deine Funktion so lauten:
wenn du die Zahlen zwischen 2 und 5 haben willst dann:
Das hast du richtig verstanden. Nur jetzt ist round woanders weil du ja Werte zwischen 3 und 5 haben willst und nicht entweder 3 oder 5.
Liegt daran weil dir rand zufällige Zahlen zwischen 0 und 1 erstellt. Wenn du sie also mit 2 multiplizierst, kriegst du Zahlen von 0 bis 2. Mit (+3) => 0 bis 5. Jetzt willst aber keine Bruchzahlen sondern Integers haben. Deswegen die round Funktion.
Der code mag kompliziert aussehen..ist aber nicht wenn man sich dran gewöhnt. Erspart eine Menge zeit im Vergleich zu excel. Du kannst dir das Ganze als eine Funktion zusammen basteln damit du es nicht jedes Mal eingeben musst.
Hab deine zweite Frage leider nicht verstanden. Das mit der square Funktion scheint richtig zu sein. Willst du eine Lösung mit der square funktion? Das mit -1 und 1 wäre auch mit square machbar glaube ich
nur den Teil mit der Stochastik geht nicht.
Das mit der if Fukntion könntest du auch hier machen. Dafür müßtest du aber eine Schleife machen. Der Vorteil von matlab ist dass du schleifen öfters vermeiden kannst weil die langsam sind. Berispiel für dein Code wäre:
Viele Grüße,
lilov
|
|
|
susi26 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 18.11.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.11.2010, 18:25
Titel:
|
 |
Hallo, das Mulitplizieren habe ich jetzt so gemacht
x1=[234, 444, 233, 334]'
f = stochasticSquare;
f(f==-1) = f(f==-1)+1.85;
xneu=(x1.*f);
So hab ich immer wenn die Rechteckfunktion den Wert -1 hat, bei Vektor x1 in der gleichen Zeile 15 % abgezogen (*0,85 mulitpliziert). Danke, funktioniert.
Die andere Frage wäre so zu verstehen gewesen: Ich möchte eine Rechteckfunktion mit einer fixer Periode erzeugen. zB 8 Tage. Wie mach ich das? Square
t = 1:1:365;
y8 = square(pi*0.125*t)';
sind die ersten werte 7 mal, erst dann ist die Periode 8!
y8 =
1
1
1
1
1
1
1
-1
-1
-1
-1
-1
-1
-1
-1
1
1
1
1
1
1
1
1
-1
-1
-1
-1
-1
-1
-1
-1
Das gleiche bei 10 Tagen, da sind die ersten Werte 9 mal. kann man das verhindern?
bei einer Periode von 2 Tagen y2 = square(pi*0.5*t)'; sind zwischendurch auch Perioden von 1 Tage oder 3 Tagen vorhanden.
kann ich also eine Rechteckfunktion auch ohne square mit fixer periode generieren??
liebe Grüße
|
|
|
lilov |

Forum-Century
|
 |
Beiträge: 193
|
 |
|
 |
Anmeldedatum: 05.05.10
|
 |
|
 |
Wohnort: Bremerhaven
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.11.2010, 19:25
Titel:
|
 |
Hi Susi,
klar geht das. ich hab die square funktion bis jetzt nicht so oft verwendet, deswegen geb ich dir wieder eine von mir ausgedachte Lösung. Die ist aber wesentlich einfacher als die letzte. hoffe das hilft dir weiter:)
viele Grüße,
lilov
|
|
|
|
|
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.
|
|