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

cfit Object manipulieren

 

Fenti
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.05.17
Wohnort: München
Version: R2017a
     Beitrag Verfasst am: 20.05.2017, 14:48     Titel: cfit Object manipulieren
  Antworten mit Zitat      
Hallo,

Ich habe ein Problem mit einem Plot, wobei ich die zu plottenden Daten mit der fit Fuktion erzeugt, sprich ein cfit object zurückbekomme.

Konkreter möchte ich gerne den geplotteten Graph ab einem bestimmten Wert "abschneiden". Das sollte kein Problem darstellen, wenn ich einfach zwei Vektoren plotte, dann würde ich einfach die Vektoren "kürzen". Allerdings bin ich nicht sehr gut mit den cfit objekten vertraut und weiß leider nicht auf welche Daten ich dort zugreifen muss.

Meine Frage also: Was muss ich tun um meinen Plot, dessen Daten aus einem cfit object bestehen, ab einem bestimmten Wert abzuschneiden?

Die jeweiligen codes dazu sehen folgendermaßen aus:
1. Übergabe der Daten an die Fit funktion sowie die plot funktion
Code:
       Graph1=Fit_ALMG_E(evalin('base',sprintf('%s',Var_Name{9+1})), evalin('base',sprintf('%s',Var_Name{9})));
        Graph2=Fit_ALMG_E(evalin('base',sprintf('%s',Var_Name{11+1})), evalin('base',sprintf('%s',Var_Name{11})));
        Graph3=Fit_ALMG_E(evalin('base',sprintf('%s',Var_Name{13+1})), evalin('base',sprintf('%s',Var_Name{13})));
        Graph4=Fit_ALMG_E(evalin('base',sprintf('%s',Var_Name{15+1})), evalin('base',sprintf('%s',Var_Name{15})));
        Plotten('ALMG-E',Graph1, Graph2, Graph3, Graph4,0.2,9,0.05,1);


2. Interpolieren der Messdaten mit der fit funktion
Code:
function [fitresult] = Fit_ALMG_E(Strain_3ALMG_E, Load_3ALMG_E)
%CREATEFIT2(STRAIN_3ALMG_E,LOAD_3ALMG_E)
%  Create a fit.
%
%  Data for 'Kraft-Dehnung' fit:
%      X Input : Strain_3ALMG_E
%      Y Output: Load_3ALMG_E
%  Output:
%      fitresult : a fit object representing the fit.
%      gof : structure with goodness-of fit info.
%
%  See also FIT, CFIT, SFIT.

%  Auto-generated by MATLAB on 16-May-2017 10:22:59


%% Fit: 'Kraft-Dehnung'.
[xData, yData] = prepareCurveData( Strain_3ALMG_E, Load_3ALMG_E );

% Set up fittype and options.
ft = fittype( 'smoothingspline' );
opts = fitoptions( 'Method', 'SmoothingSpline' );
opts.Normalize = 'on';
opts.SmoothingParam = 0.677769404066039;

% Fit model to data.
[fitresult, gof] = fit( xData, yData, ft, opts );
end


3.Plotten der interpolierten Daten mit der plot funktion
Code:
function [] = Plotten(Name, Graph1, Graph2, Graph3, Graph4,x_length,y_length,x_step,y_step)
%Erzeugt einen Plot der vier uebergebenen Graphen in einer Figure und
%beschriftet die figure entsprechend

        %Figure
        figure('Name',Name,'NumberTitle','off');
        %Axis setup
        %ax=axes();
        %ax.XLim=[0 x_length];
        %ax.YLim=[0 y_length];
        %ax.XTick=0:x_step:x_length;
        %ax.YTick=0:y_step:y_length;
        %Plots
        plot1handle=plot(Graph1);
        hold on
        plot2handle=plot(Graph2);
        plot3handle=plot(Graph3);
        plot4handle=plot(Graph4);
        hold off
        % Set Color
        set(plot1handle,'Color',[0.8500,0.3250,0.0980],'LineWidth',1.2);
        set(plot2handle,'Color',[0.4660,0.6740,0.1880],'LineWidth',1.2);
        set(plot3handle,'Color',[0.4940,0.1840,0.5560],'LineWidth',1.2);
        set(plot4handle,'Color',[0,0.4470,0.7410],'LineWidth',1.2);
        % Titel
        t=title(['Zugversuch ', Name]);
        t.FontSize=14;
        % Label axes
        xlabel( 'Dehnung' );
        ylabel( 'Kraft [kN]' );
        % Grid
        grid on
        set(gca,'GridLineStyle','-');
        set(gca,'Layer','bottom');
        Layer = 'bottom';
        % Legend
        legend('Gruppe 3','Gruppe 4','Gruppe 5','Gruppe 6','Location','northeastoutside');
        lgd = legend('show');
        lgd.FontSize=12;
        title(lgd,'Legende:');
        legend('boxoff');

end


Ich würde mich wirklich freuen, wenn mir einer hierbei weiterhelfen könnte.

Grüße
Fenti

P.S.: Ich habe es schon mal mit der coeffvalues() funktion probiert, allerdings weiß ich nicht wie ich die Daten, die ich dadurch erhalte, weiter zu verwenden habe. Mir ist leider nicht ersichtliche hinter welchen Daten sie die x und y Werte verbergen.
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.