WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Schleife, Werte in Array speichern

 

05haidin
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 19.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.04.2009, 10:20     Titel: Schleife, Werte in Array speichern
  Antworten mit Zitat      
Hey
ich hab folgende Simulation:
Code:
function S = Sim(S0, dT, n, mr , sd, alpha)
for
    a = exp(-alpha*dT);
    b = mr*(1-a);
    c = sd*sqrt((1-a*a)/2/alpha);

    S = [S0 filter(1,[1 -a], b+c*randn(1,n), a*S0)];
end
 

das mir genau n Werte in eine Zeile einer neuen Matrix schreibt. Ich möchte jetzt eine Schleife einfügen, dass er diese Simulation zb 10 mal durchführt und die immer weiter so speichert--> S1,S2,S3,S4...
Kann mir da jemand helfen??

lg
Private Nachricht senden Benutzer-Profile anzeigen


josekamara
Forum-Meister

Forum-Meister


Beiträge: 529
Anmeldedatum: 26.04.08
Wohnort: München
Version: ---
     Beitrag Verfasst am: 11.04.2009, 12:43     Titel:
  Antworten mit Zitat      
Code:
SS=[S0];
for i=1:10
S = Sim(SS(end), dT, n, mr , sd, alpha);
SS(end+1)=S;
end

_________________

Simulation
Private Nachricht senden Benutzer-Profile anzeigen
 
05haidin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 19.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.04.2009, 20:36     Titel:
  Antworten mit Zitat      
hey
danke für di schnelle antwort, aber ich glaube ich hab mich falsch ausgedrückt, S0 ist einfach ein Startwert für den Prozess, speicheren soll er es unter S, S1,S2,S3.... (= Sim(S0, dT, n, mr , sd, alpha) )
oder passt der Code schon und ich steh nur auf der Leitung??

lg
Private Nachricht senden Benutzer-Profile anzeigen
 
josekamara
Forum-Meister

Forum-Meister


Beiträge: 529
Anmeldedatum: 26.04.08
Wohnort: München
Version: ---
     Beitrag Verfasst am: 11.04.2009, 22:58     Titel:
  Antworten mit Zitat      
Hallo,

es ist egal Sie können dann einfach S0 anstatt SS(end) lassen. Ansonsten müssen Sie bitte die Fragen noch genauer stellen.
Viel Glück.

Jose
_________________

Simulation
Private Nachricht senden Benutzer-Profile anzeigen
 
05haidin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 19.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.04.2009, 16:37     Titel:
  Antworten mit Zitat      
Hey

ich probiers noch einmal Wink , ich habe jetzt folgende Schleife, die leider noch nicht funktioniert:
Code:
function M = SimulateMC(n, m, S0, dT, mu, sigma, lambda)  

 a = exp(-lambda*dT);
    b = mu*(1-a);
    c = sigma*sqrt((1-a*a)/2/lambda);
   
     % definiert eine matrix mit m zeilen und jeweils n werten pro zeile - noch mit nullen befüllt, wird später befüllt
     M = zeros(n, m);
     
     %  Schleife 1 (senkrecht = eine neue Zeile wird begonnen)
     for  i=1:1:n  
     
          % Schleife 2 (waagrecht = die Zeile wird befüllt)      
          for j=1:1:m % schleife beginnt bei 1: schritteweite ist 1; schleife endet bei n durchläufen
           
               % Hier findet die Berechnung statt und wird an einen Platz in der Matrix geschrieben (Position[j])
               M(i, j) = S0 filter(1,[1 -a], b+c*randn(1,n), a*S0);
           
          end % Ende der inneren Schleife
         
     end % Ende der äußeren Schleife
 
end % Ende der Funktion

 

Die ursprüngliche Funktion S = Simulate(S0, dT, n, mu, sigma, lambda) gibt mir einen Zeilenvektor mit n+1 Werten zurück, mit S0 als ersten Wert. Mit Hilfe der obenangeführten Schleife möchte ich, dass er diese Prozedur wiederholt und ein die Matrix M in jede Zeile jeweils eine Berechnung hineinschreibt. dh bei 10facher Wiederholung sollen 10 Zeilen mit jeweils n Werten in der Matrix M enthalten sein.

Kann mir jemand helfen wo das Problem liegt, bekomme wenn ich die Funktion ausführe nämlich immer eine Fehlermeldung

Vielen Dank!!

lg
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 14.04.2009, 17:02     Titel:
  Antworten mit Zitat      
Wie lautet denn die Fehlermeldung?
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
05haidin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 19.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.04.2009, 20:09     Titel:
  Antworten mit Zitat      
Also es kommt folgende Fehlermeldung:
??? Error: File: OU_SimulateMC.m Line: 17 Column: 29
Unexpected MATLAB expression.

im Editor: Line 17 Parse Error at 'filter': usage might be invalidt MATLAB syntax
Line 17 Terminate statement with semicolon to suppress output (in functions)
Line 17 -||-
Line 17 Parse error at ')': usage might...

Mit dieser Zeile hat er Probleme (ohne Schleife hat er keine Probleme damit):
Code:
M(i, j) = S0 filter(1,[1 -a], b+c*randn(1,n), a*S0);

filter, [,+ und ) sind unterwellt.

lg rina
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.