Verfasst am: 17.05.2017, 08:44
Titel: Plot-Problem mit hold on
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
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
Verfasst am: 19.05.2017, 15:18
Titel: Re: Plot-Problem mit hold on
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.
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
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
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.