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

Speichern aller Ergebnisse einer For-Schleife

 

Privatmolkerei

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.08.2016, 17:47     Titel: Speichern aller Ergebnisse einer For-Schleife
  Antworten mit Zitat      
Hallo lieber Mitglieder,

Es kommt natürlich nie ganz fein, wenn man als Gast direkt einen Strang mit einer Frage öffnet. Allerdings stehe ich kurz vor dem Abgabetermin meiner Bachelorarbeit und mein Betreuer eröffnete mir ich solle doch noch schauen, ob auch bei mehreren Durchführung meines Codes akzeptable Werte rauskommen.

Ich habe also diesen Code. Ich denke die Interpretation der Variablen ist nicht von Bedeutung. Alle Variablen wurden auch vorher schon definiert, die Funktion für zur Integrierung wurde in einem anderen Skript definiert.

Nun soll einfach eine for-Schleife drum gepackt werden, damit alles 100x ausgeführt wird. Jetzt sollen natürlich alle Werte für X_total_3 gespeichert werden.

Ich dachte ich könnte einfach einen Befehl wie

Matrix(n)=X_total_3

alle Maximierungen X_total_3 speichern. X_total_3 wirft immer 5 Werte aus, ein Vektor geht ja also nicht?

Aber irgendwie will es nicht klappen, dass ich am Ende 100x 5 Werte habe.

Code:
% Das soll 100x mit For-Schleife ausgeführt werden

B = sqrt(rho_7) .* Y + sqrt(1-rho_7) .* E;

Ausfall = B < repmat(c_upd,a_J,a_K);                                
 
Gesamtausfall = sum(B < repmat(c_upd,a_J,a_K),2);

% Maximierung

options = optimset('Display','iter','MaxFunEvals',1000, 'MaxIter', 1000,'Algorithm','sqp','TolFun',1e-16);

[X_total_3 FV_TCT]  = fmincon(@(x) -Parameterschaetzung_Rhokomplett(x,Ausfall,C1,C2,Z),[0.15 0.10 0.20 0.01 0.02],[],[],[],[],[0.10 0.05 0.15 0.01 0.001],[0.3 0.3 0.30 0.15 0.2],[],options);


Da ich unter Zeitdruck stehe bin ich für jeden Hinweis dankbar!

Also in Kurz noch einmal: Durch eine For-Schleife führe ich diesen Code 100x aus. Am Ende möchte ich dann alle 100 Maximierungsergebnisse von X_total_3 gespeichert haben um daraus den Mittelwert für jeden der 5 Werte zu ziehen.


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 02.08.2016, 17:59     Titel:
  Antworten mit Zitat      
Hallo

du kannst die Matrix auf die entsprechende Größe vorinitialisieren, und dann die Werte zuweisen, irgendwie so:

Code:


% vorinitialisieren
Matrix = zeros(5, 100)

for k= 1:100
 
  B = sqrt(rho_7) .* Y + sqrt(1-rho_7) .* E;
  ...
  [X_total_3 FV_TCT]  = fmincon(...);
 
  % dann zuweisen
  Matrix(:,k) = X_total_3(:)
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Privatmolkerei

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.08.2016, 09:43     Titel:
  Antworten mit Zitat      
Klasse! Das vordefinieren habe ich natürlich nicht gemacht ..

Vielen Dank für die Hilfe ! Smile
 
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 - 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.