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

Curve Fitting Toolbox mit Voreinstellungen starten

 

Izual

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.09.2015, 16:27     Titel: Curve Fitting Toolbox mit Voreinstellungen starten
  Antworten mit Zitat      
Hallo liebes Forum,

ich benötige einmal eure Hilfe bei der Nutzung der Curve Fitting Toolbox. Und zwar würde ich diese gerne mit ein paar Voreinstellungen starten lassen.
Genauer gesagt soll nach dem Öffnen schon (s. auch das Bild im Anhang)
a) die gewünschten Werte eingelesen sein (check)
b) auf einen bestimmten Bereich gezoomt sein
c) es sollen bestimmte Punkte aus dem zu fittenden Bereich ausgeschlossen sein
d) der Fitname soll schon eingetragen sein
e) die Custom Equation soll gespeichert sein

Ich habe schon länger gesucht und leider keine Möglichkeit gefunden, das umzusetzen.
Bisher habe ich nur einen Weg gefunden, dass er schonmal die x-, und y-Werte lädt:
Code:
Open curve fitting tool
 cftool( V, idlogI )



Prinzipiell ist mein Problem mit dem hier zu vergleichen:
http://goobbe.com/questions/4905441.....h-matlab-using-custom-gui
Nur würde ich das gerne ohne lsqcurvefit gestalten, sondern interaktiv lassen. Da meine Messungen ziemlichen Schwankungen unterliegen. Und ich das CFT sehr übersichtlich und intuitiv finde.


Ich hab das ganze auch als nicht interaktiven Code hinbekommen, aber das ist mir halt viel zu statisch und wird nicht für all meine Messungen funktionieren, hauptsächlich wegen der ausgeschlossenen Punkte:

Code:
%% Fit: 'Breakdown Voltage Fit'.
[xData, yData] = prepareCurveData( V, idlogI );

% Set up fittype and options.
ft = fittype( '(V-Vb)/n + b*(V-Vb)^2', 'independent', 'V', 'dependent', 'y' );
ex = excludedata( xData, yData, 'Indices', [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86] );
opts = fitoptions( 'Method', 'NonlinearLeastSquares' );
opts.Display = 'Off';
opts.Lower = [25 -Inf -Inf];
opts.StartPoint = [0.162611735194631 0.218074624338047 0.489764395788231];
opts.Upper = [30 Inf Inf];
opts.Exclude = ex;

% Fit model to data.
[fitresult, gof] = fit( xData, yData, ft, opts );
coeffs = coeffvalues(fitresult);
Vbd = ['Vbd = ',num2str(coeffs(1))];
b = ['b = ',num2str(coeffs(2))];
n = ['n = ',num2str(coeffs(3))];
str = {Vbd,b,n};

% Plot fit with data.
figure( 'Name', 'Breakdown Voltage Fit' );
h = plot(fitresult,'b', xData, yData, ex);
set(h(2),'Marker','x', 'MarkerSize',7, 'MarkerFaceColor','r', 'MarkerEdgeColor','r');
set(h(1),'Marker','o', 'MarkerSize',2, 'MarkerFaceColor','k', 'MarkerEdgeColor','k');
axis([27.2 29.2 0 2]);
title('Breakdown Voltage Fit: (V-Vb)/n + b*(V-Vb)^2');
legend( h, 'InvLogDer vs. V', 'Excluded InvLogDer vs. V', 'Breakdown Voltage Fit', 'Location', 'SouthEast');
annotation('textbox', [0.715,0.28,0.18,0.129],'String', str, 'BackgroundColor',[1 1 1]);

% Label axes
xlabel( 'V' );
ylabel( 'Inv. logarithmic derivative');
grid on;




MfG und danke schon mal an alle, die sich dass hier durchlesen und vielleicht sogar antworten Smile

cft.png
 Beschreibung:

Download
 Dateiname:  cft.png
 Dateigröße:  98.08 KB
 Heruntergeladen:  550 mal


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.09.2015, 18:31     Titel:
  Antworten mit Zitat      
Hallo,

du kannst den generierten Code entsprechend anpassen. Genau so ist das ja auch gedacht:

b) auf einen bestimmten Bereich gezoomt sein --> axis-Befehl anpassen
c) es sollen bestimmte Punkte aus dem zu fittenden Bereich ausgeschlossen sein --> excludedata-Befehl anpassen

Auch die Namen können nach Belieben angepasst werden.
Du könntest auch eine Funktion daraus machen und die Sachen, die flexibel bleiben sollen, als Parameter übergeben.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Izual

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.09.2015, 10:15     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

du kannst den generierten Code entsprechend anpassen. Genau so ist das ja auch gedacht:

b) auf einen bestimmten Bereich gezoomt sein --> axis-Befehl anpassen
c) es sollen bestimmte Punkte aus dem zu fittenden Bereich ausgeschlossen sein --> excludedata-Befehl anpassen

Auch die Namen können nach Belieben angepasst werden.
Du könntest auch eine Funktion daraus machen und die Sachen, die flexibel bleiben sollen, als Parameter übergeben.

Grüße,
Harald


Erstmal Danke für die Antwort Smile
Nur hilft mir das nicht wirklich weiter. Dass ich die ausgeschlossenen Punkte und die Achsenabschnitte im Code ändern kann, ist mir bewusst und das habe ich im längeren Code-Part, den ich gepostet habe, ja auch genutzt. Wenn ich den Code allerdings ausführe, führt er halt direkt den Fit durch und spuckt mir die Werte aus, geht aber nicht mehr den "Umweg" über die Curve Fitting Toolbox, was ich aber möchte.

Ich würde mir wirklich einen Script wünschen, der das CFT aufruft und halt schon bestimmte Voreinstellungen eingetragen hat. So dass der User die benötigten Änderungen von Hand und ohne Programmierkünste anwenden kann.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.09.2015, 19:22     Titel:
  Antworten mit Zitat      
Hallo,

du kannst ja selbst in der Doku von cftool lesen. Wenn dort nichts entsprechendes zu finden ist, ist das so wohl nicht vorgesehen.
Du kannst dich ja mal an den Technischen Support von MathWorks wenden und dort nachfragen, ob es eine Möglichkeit gibt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Izual

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.09.2015, 13:30     Titel:
  Antworten mit Zitat      
Bisher habe ich dazu nichts gefunden und befürchte auch, dass es sowas wohl nicht gibt Confused

Aber trozdem danke dir 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 - 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.