Verfasst am: 19.05.2015, 17:05
Titel: Plot aus zwei Arrays erstellen
Hallo,
ich habe bisher ein Programm, das mir zwei Arrays (mit variabler Länge) erstellt, aus denen eine Funktion geplottet werden soll.
Jeweils die ersten beiden Einträge ergeben einen Datenpunkt.
Am besten wäre ein Ansatz aus einem oder mehreren ln(x) oder sqrt(x), da die Funktion diesen am ähnlichsten sieht (Anfangs schneller Anstieg, dann immer abnehmendere Steigung).
Am besten wäre ein Ansatz aus einem oder mehreren ln(x) oder sqrt(x), da die Funktion diesen am ähnlichsten sieht (Anfangs schneller Anstieg, dann immer abnehmendere Steigung).
was hat das mit dem plotten zu tun?
bitte erkläre nochmal genauer was du hast und was du gerne willst. am besten auch code beispiele was du schon versucht hast.
grüße
_________________
Jeweils die gleichen Einträge bilden einen Punkt meines Graphen, also P1=(50/110), P2=(60/118) usw.
Es soll nun aus den Punkten eine Funktion erstellt bzw geplottet werden, die als Ansatz einen ln(x) oder sqrt(x) benutzt.
Als polynom könnte ich es so umsetzen:
Code:
poly_ll=polyfit(I_e,E_h_schleife,length(I_e)-2); % Ermittlung der Koeffizienten
xWerte=0:0.1:150; % Auflösung des Graphen
polyfunktion=polyval(poly_ll,xWerte); % Definition der Polynomfunktion % Definition der Polynomfunktion figure('Name','Leerlaufkennlinie','NumberTitle','off');
hold on
plot(xWerte,polyfunktion,'b') for i=1:length(I_e) plot(I_e(i),E_h_schleife(i),'rx');
end clear i
axis([0,150,0,150]) xlabel('I_e in A') ylabel('E_h in V') grid on
das klingt nach Regression. Allerdings müsstest du jetzt sagen, wie genau der Ansatz aussehen soll. Typischerweise enthält der Ansatz ja Parameter, z.B.
wie bereits vorgeschlagen: fitlm. Bitte mal einen Blick in die Doku werfen
Grüße,
Harald
Ich verstehe ehrlich gesagt nicht so wirklich was diese Funktion macht. Wäre echt nett, wenn du mir das kurz erklären könntest, oder am besten den Code dazu schicken könntest, Vielen Dank!
ich kann dir auch nur sagen, was in der Doku steht.
Code:
x = (1:0.5:10)';
y = 2.7 * log(x) + 1.2 + 0.1*randn(size(x));
plot(x,y,'o')
logarithmicFit = fitlm(log(x), y);
p = logarithmicFit.Coefficients
xfine = (1:0.01:10)';
yfine = predict(logarithmicFit, log(xfine));
hold on
plot(xfine, yfine) hold off
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.