Moin,
ich stehe vor einem kleinem Problem! Ich habe mir einen Matlab Code kreiert, mit dem ich mir einen Graphen erzeuge.Mit dem polyfit und dem interp1 Befehlen habe ich mir nun eine interpolierte Gerade aus den Messpunkten erzeugt.
Was ich nun zusätzlich machen will ist, dass ich in einem bestimmten X-Abschnitt nicht gerade (also Polynom 1. Grades) interpolieren möchte,. sondern auch z.B. eine Steigungskurve mit Polynom 2.Grades darstellen möchte.
Kann man das irgendwie mit einer Befehlskette in einem Plot realisieren??
Ich bitte darum in meinem Code die Eval-Befehle zu missachten^^
f_p=@(x)temp_m*x+temp_b;
eval(['f = temp_m*ps_struct+temp_b']);
%2D-Plot aller Graphen=> damit extrapoliert wird muss die Methode
%und der Befehl 'extrap' mit 2 " ' " ausgeführt werden
xi=[0; max_ps];
eval(['yi=interp1(ps_struct,f,xi,''spline'',''extrap'')']);
figure(6);
eval('plot(xi,yi)');
Bei den EVALs zieht's mir die Schuhe aus. Brrr.
Ich kann die EVALs deshalb nicht ignorieren, weil das Lesen des Codes so stark behindern, dass ich nichts mehr erkennen kann, was das Programm überhaupt macht. Ich räume deshalb erstmal auf:
Ich kann wirklich nur von den EVALs abraten. Sie machen die Programme so unübersichtlich, dass man keine einfachen Lösungen mehr hinbekommt. Auch Matlab selbst muss bei der Bearbeitung härter arbeiten als bei richtigem Code.
Gruß, Jan
BunterKunt
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 26.10.2011, 11:52
Titel:
Hey Jan, also erstmal danke habe den Code mal ausprobiert und funktioniert.
Das Laster mit dem Eval Wirr Warr stammt noch aus ersten Programmierzeiten... nicht übel nehmen. Habs jetzt auch rausgenommen^^
Also was ich konkret machen möchte.
Ich habe eine interpolierte Gerade (1.Grades); sagen wir x hat Werte von 1-10 (y-werte von 0.023-2.1==> deshalb interpolieren). Nun möchte ich, dass bis x=5 die Gerade (1.Grades) dargestellt wird und aber danach von x=5-10 quadratisch (oder höher) interpoliert wird.
Was problematisch wird es bei den y-Werten! Bei der Interpolation werden ja auch die y-Werte interpoliert. D.h ich habe bei x=5 einen Sprung in meinem Plot weil die y-Werte der ersten Interpolierten mit der zweiten Interpolierten nicht mehr übereinstimmen.
Kann ich da irgendwie einen Übergang schaffen?? oder anpassen??
Du möchtest also zwei unterschiedliche Kurven so fitten, dass sie bei einem bestimmten X-Wert stetig und stetig differenzierbar aneinanderhängen. Oder auch mehrfach stetig differenzierbar?
Gruß, Jan
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.