|
|
'Display', 'Iter' direkt nach Excel exportieren |
|
Hilfsbedürftiger |

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 10.12.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.12.2014, 18:07
Titel: 'Display', 'Iter' direkt nach Excel exportieren
|
 |
Hallo,
cih habe ein Frage zum exportieren von Matlabdaten nach Excel.
Ich kenne die Funktion xlswrite und wende diese auch an, allerdings kann man damit meines Wissens nach nur Matrizen nach Excel exportieren.
Ich würde gerne wissen ob es die Möglichkeit gibt sofort bei der Ausführung einer Funktion die Werte in eine Excel Datei zu schreiben.
Um konkreter zu werden, ich führe eine Optimierung einer Funktion mit fmincon durch. Mithilfe der optimoptions Funktion lasse ich mir die daten nach jedem Iterationsschritt im Command Window ausgeben:
options=optimoptions('fmincon','display','iter')
Kann ich mir dieses Display direkt nach Excel expotieren?
Wenn ja wie? Mache das bis jetzt mit Copy/Paste was nicht sehr elegant ist.
Danke für eure Hilfe
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.12.2014, 10:57
Titel:
|
 |
Hallo,
mit dem diary-Befehl kannst du diese Ausgabe in eine Textdatei schreiben lassen.
Wenn es eine Excel-Datei sein muss, kannst du die Ausgabe von dort wieder einlesen (fgetl / textscan) und dann nach Excel schreiben (xlswrite).
Grüße,
Harald
|
|
|
Hilfsbedürftiger |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 10.12.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.12.2014, 16:21
Titel:
|
 |
Danke für deine Hilfe, du bist in diesem Forum ja echt der Retter in der Not.
Ich werde es gleich ausprobieren.
|
|
|
Hilfsbedürftiger |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 10.12.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.12.2014, 17:23
Titel:
|
 |
Kann eigentlich auch die Informationenen die im Comand window ausgegebenen werden direkt in einer Tabelle im Workspace Speichern?
Denn dann könnte ich diese Tabelle ja mit writetable exportieren.
Mich würde auch interessieren wie lange Fmincon gerechnet hat, bei simulannealbnd wird das in der output datei mit angegeben, das gibts bei fmincon in der Form aber nicht kann ich das über Tic toc iwei erreichen?
Danke
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 22.12.2014, 18:42
Titel:
|
 |
Hallo,
Zitat: |
Kann eigentlich auch die Informationenen die im Comand window ausgegebenen werden direkt in einer Tabelle im Workspace Speichern? |
Ist mir nicht bekannt.
Dein Anwendungsfall ist eher ungewöhnlich, und mir ist nur die eine Möglichkeit bekannt.
Zitat: |
Mich würde auch interessieren wie lange Fmincon gerechnet hat, bei simulannealbnd wird das in der output datei mit angegeben, das gibts bei fmincon in der Form aber nicht kann ich das über Tic toc iwei erreichen? |
Klar:
Im übrigen muss man sagen, dass der Vergleich nicht ganz fair ist, da fmincon ein lokaler und simulannealbnd ein globaler Optimierer ist. Zudem schlägt MathWorks in der Hilfe vor, statt Simulated Annealing zunächst andere Wege zu versuchen:
http://de.mathworks.com/help/gads/choosing-a-solver.html#bsa_e9p
Grüße,
Harald
|
|
|
Hilfsbedürftiger |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 10.12.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.12.2014, 20:40
Titel:
|
 |
Erstmal Danke nochmal.
Mir ist auch aufgefallen, dass Simulated Anneling zu den Globalen Verfahren gezählt wird(was mir unter anderem auch hilft da ich eigentlich ein Globales Minimum suche) allerdings steht bei der Erläuterung zu Simmulated Annealing folgendes:
"x = simulannealbnd(fun,x0) starts at x0 and finds a local minimum x to the objective function specified by the function handle fun. The objective function accepts input x and returns a scalar function value evaluated at x. x0 may be a scalar or a vector."
Wenn ich Simulated Annealing lange genug rechnen lasse, sollte es dann tatsächlich das Globale Optimum finden?
|
|
|
Hilfsbedürftiger |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 10.12.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.12.2014, 11:11
Titel:
|
 |
|
 |
|
Ich hab jetzt versucht es über die output Funktion zu regeln da taucht aber ein Fehler auf vielleicht kann mit jemand sagen was ich falsch mache.
lb=[0.1 0.1 0.01 0.005 0 2 2 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001];
ub=[0.8 0.5 0.05 0.05 90 100 15 0.01 0.01 0.01 0.01 0.01 0.01];
Zufallsparameter;
x0=zufallsparameter;
xlswrite('fmincon.xlsx',zufallsparameter,'Interior-Point3','B2')
A=[];
b=[];
Aeq=[];
beq=[];
nonlcon=[];
options=optimoptions('fmincon','Algorithm','interior-point','MaxIter',2,'MaxFunEvals',1000,'Display','iter','OutputFcn','outfun');
tic;
[x,fval,exitflag,output]=fmincon(@anpassung,x0,A,b,Aeq,beq,lb,ub,nonlcon,options);
t_fmincon=toc;
Ergebnisse;
Über optimoptions wird die outputFcn aufgerufen, welche ich in einer function m.file gespeichert hab:
function stop = outfun(x,optimValues,state)
stop = false;
switch state
case 'init'
hold on
case 'iter'
% Concatenate current point and objective function
% value with history. x must be a row vector.
history.fval = [history.fval; optimValues.fval];
history.x = [history.x; x];
history.iterration =[history.iteration;optimValues.iteration];
history.firstorderopt=[history.firstorderopt;optimValues.firstorderopt];
history.funccount=[history.funccount;optimValues.funccount];
history.stepsize=[history.stepsize;optimValues.stepsize];
history.constrviolation=[history.constrviolation;optimValues.constrviolation];
case 'done'
hold off
otherwise
end
end
Ich bekomme jedoch diese Fehlermeldung:
At compilation, "history" was determined to be a variable and this variable is uninitialized. "history" is also a function name and
previous versions of MATLAB would have called the function. However, MATLAB 7 forbids the use of the same name in the same context
as both a function and a variable.
Error in outfun (line 10)
history.fval = [history.fval; optimValues.fval];
Error in callAllOptimOutputFcns (line 13)
stop(i) = feval(OutputFcn{i},xOutputfcn,optimValues,state,varargin{:});
Error in barrier>callOutputAndPlotFcns (line 911)
Error in barrier/nlpInterfaceFcn (line 801)
Error in barrier (line 329)
Error in fmincon (line 818)
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] = barrier(funfcn,X,A,B,Aeq,Beq,l,u,confcn,options.HessFcn, ...
Error in Fmincon1_1 (line 13)
[x,fval,exitflag,output]=fmincon(@anpassung,x0,A,b,Aeq,beq,lb,ub,nonlcon,options);
Ich hoffe mir kann jemand weiterhelfen danke und frohe Weihnachten.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 24.12.2014, 13:01
Titel:
|
 |
Hallo,
zur vorherigen Frage:
Kein Algorithmus der Welt garantiert ein globales Minimum. Wenn man einen Algorithmus länger laufen lässt, erhöht sich zwar die Wahrscheinlichkeit, aber man bekommt nie eine Garantie.
Zur Funktionsweise von Simulated Annealing siehe z.B. hier:
http://de.mathworks.com/help/gads/h.....ated-annealing-works.html
Beim Code ist dann das Problem, dass die Variablen nicht initalisiert werden. Das könnte z.B. im init-Teil gemacht werden:
Bitte in Zukunft die Code-Umgebung nutzen, damit das übersichtlicher dargestellt wird.
Grüße und schöne Weihnachten,
Harald
|
|
|
|
|
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.
|
|