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

Plot-Problem mit hold on

 

Fenti
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.05.17
Wohnort: München
Version: R2017a
     Beitrag Verfasst am: 17.05.2017, 09:44     Titel: Plot-Problem mit hold on
  Antworten mit Zitat      
Hallo zusammen,

ich habe ein Problem mit dem plotten einer Kurvenschar, sprich mit dem plotten mehrerer Plots in ein figure unter Verwendung des hold on Befehls.

Die einzelnen Plots an sich sehen sehr gut aus, lediglich nach dem plotten in ein figure verändern sie sich scheinbar zufällig und sehen nich ansatzweise nach dem ursprünglichen Plot aus.

Hier die Bilder zu dem konkreten Problem:
Plot des ersten Datensatzes (Siehe Anhang: Plot_Messdaten1.jpg)
Die drei restlichen Plots sehen ähnlich aus.

Nach dem plotten der vier einzelnen plots in eine figure sieht es folgendermaßen aus:
Plot der Kurvenschar (Siehe Anhang: Plot_Versuch_1.jpg)

Der verwendete Code sieht folgendermaßen aus:
Plot Funktion an sich:
Code:
function [] = Plotten(Name, Graph1, Graph2, Graph3, Graph4)
%Erzeugt einen Plot der vier uebergebenen Graphen in einer Figure und
%beschriftet die figure entsprechend

        figure('Name',Name,'NumberTitle','off');
        plot(Graph1,'r');
        hold on
        plot(Graph2,'c');
        plot(Graph3,'m');
        plot(Graph4,'b');
        hold off
        % Label axes
        xlabel( 'Dehnung' );
        ylabel( 'Kraft [kN]' );
        grid on
        legend('Gruppe 3','Gruppe 4','Gruppe 5','Gruppe 6','Location','northwest');
        hold off

end


Übergeben und erzeugen der zu plottenden Daten:
Code:
%Plot des Versuchs ALMG-B
        Graph1=Fit_ALMG_B(evalin('base',sprintf('%s',Var_Name{1+1})), evalin('base',sprintf('%s',Var_Name{1})));
        Graph2=Fit_ALMG_B(evalin('base',sprintf('%s',Var_Name{3+1})), evalin('base',sprintf('%s',Var_Name{3})));
        Graph3=Fit_ALMG_B(evalin('base',sprintf('%s',Var_Name{5+1})), evalin('base',sprintf('%s',Var_Name{5})));
        Graph4=Fit_ALMG_B(evalin('base',sprintf('%s',Var_Name{7+1})), evalin('base',sprintf('%s',Var_Name{7})));
        Plotten('ALMG-B',Graph1, Graph2, Graph3, Graph4);


Berechnen der zu plottenden Daten aus den Messwerten:
Code:
%CREATEFIT2(STRAIN_6ALMG_B,LOAD_6ALMG_B)
%  Create a fit.
%
%  Data for 'untitled fit 1' fit:
%      X Input : Strain_6ALMG_B
%      Y Output: Load_6ALMG_B
%  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 11:38:05


%% Fit: 'untitled fit 1'.
[xData, yData] = prepareCurveData( Strain_6ALMG_B, Load_6ALMG_B );

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

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


Ich bin euch sehr verbunden, wenn ihr mir hierbei weiterhelfen könntet.

Liebe Grüße
Fenti

P.S.: Für Interessierte, es handelt sich hierbei um Messdaten aus einem Werkstoffzugversuch.

Plot_Versuch_1.jpg
 Beschreibung:
Plot der Kurvenschar.

Download
 Dateiname:  Plot_Versuch_1.jpg
 Dateigröße:  16.44 KB
 Heruntergeladen:  311 mal
Plot_Messdaten1.jpg
 Beschreibung:
Einzelner Plot.

Download
 Dateiname:  Plot_Messdaten1.jpg
 Dateigröße:  14.77 KB
 Heruntergeladen:  302 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 19.05.2017, 16:18     Titel: Re: Plot-Problem mit hold on
  Antworten mit Zitat      
Hallo Fenti,

Ich kann aus den Screenshots nicht erkennen, wo etwas "scheinbar zufällig" anders aussieht, als erwartet. Beschreibe doch mal, was Du siehst.

Es ist nicht klar, welcher Teil des Codes was macht.
Der massive Einsatz von evalin ist immer ein schrecklicher Progarmmierstil, weil er das Debuggen massiv erschwert. So lässt sich nicht beurteilen, woher die Daten denn genau stammen und ob es vielleicht nur ein Tippfehler bei der Erstellung der Variablen-Namen ist.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Fenti
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.05.17
Wohnort: München
Version: R2017a
     Beitrag Verfasst am: 24.05.2017, 13:29     Titel:
  Antworten mit Zitat      
Hallo,

ich konnte das Problem mittlerweile genauer eingrenzen, jedoch leider nicht lösen.

Das Problem besteht darin, dass ich mehrere Plots von cfit objecten erstelle und diese jeweils die "current axes" verwenden um ihre y-Werte zu generieren.
Jedoch sollten sie nicht die aktuellen Daten der x-Achse nutzen, sondern viel mehr die jeweiligen Messwerte.

Ich habe dazu das in der Matlab Dokumentation für die plot Funktion für sfit und cfit objekten gefunden.
Zitat:
plot(cfit) plots the cfit object over the domain of the current axes, if any. If there are no current axes, and fun is an output from the fit function, the plot is over the domain of the fitted data.


Meine Frage lautet nun, wie bekomme ich die plot funktion dazu immer die "fitted data" zu benutzen und nicht die "current axes".

Dazu muss vielleicht noch gesagt werden, dass ich das zu plottende cfit objekt mit der fit funktion erzeuge, genauer gesagt mit der fitoption 'SmoothingSpline'.

Grüße
Fenti
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.