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

Hi, Bräuchte Hilfe bei einer Wertepaar-Aufgabe :)

 

Harald
Forum-Meister

Forum-Meister


Beiträge: 24.434
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.07.2016, 07:30     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
aber kann ich nicht ganz nachvollziehen bzw. versteh ich nicht.

Dann lies bitte die Dokumentation zu Funktionen. Dort steht wirklich alles drin, was du zu dem Thema wissen musst.
Wenn es konkrete Fragen gibt, gerne.

Abgeben musst du ja an sich nur die Funktion. Du solltest sie aber schon mal aufgerufen haben um zu sehen, ob sie funktioniert.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen


MoeE
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 17.07.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2016, 17:10     Titel:
  Antworten mit Zitat      
Hallo zusammen,

da ich noch leider nicht fertig mit meiner Aufgabe bin hatte ich noch einige Fragen und bräuchte bitte eure Hilfe, die Aufgabe lautet , ich wiederhole:

" Eine Funktion vom Typ f(x) = a+ b * x^c , die möglichst gut durch N vom Benutzer vorgegebene (x,y)-Wertepaare legt."


Es war vorher unklar in wie fern der Benutzer mit "input" die Wertepaare vorgibt. Jetzt ist es nämlich klar, dass der Benutzer wirklich N mal selber (x1 y1), (x2 y2), ...,(xn yn) Wertepaare einlesen soll. Den Rest hatte ich mit eurer Hilfe schon geklärt , danke nochmal dafür.

Bis jetzt:

Code:



% Selbst wählbare 'Range' der x- und y- Werte.

n = input ('x Range from: ');
n2 = input ('to: ');
 
xdata = linspace(n,n2,10);

m = input ('y Range from: ');
m2 = input ('to: ');

ydata = linspace(m,m2,10);


% Funktion vom Typ f(x) = a + b * x^c
fun = @(x,xdata) x(1) + x(2) * xdata.^x(3);

% Startwerte der Parameter
x0 = [0,0,0];

% Werte für Parameter a, b und c werden bestimmt damit die Kurve
% bestmöglichst angepasst wird bezüglich der selbst bestimmten Wertepaare.
% Befehl für die Exponentialkurve
x = lsqcurvefit(fun,x0,xdata,ydata)


plot(xdata,ydata)

times = linspace(xdata(1),xdata(end));
plot(xdata,ydata,'kx',times,fun(x,times),'b-')
legend('Schnittpunkte','angepasste Exponentialkurve')
title('Schnittpunkte und angepasste Exponentialkurve')



 



Ich dachte erst über "linspace" wäre es richtig, jedoch soll der Benutzer nicht nur eine ungefähre "Range" eingeben, sondern wirklich Zahl für Zahl die x und y Werte einlesen -->(x1 y1), (x2 y2), ...,(xn yn), dessen Anzahl er auch N mal durch "input" bestimmt hat.

Könnte mir da vielleicht jemand mit einem schnellen Code dafür auf die Sprünge helfen?

Danke vielmals !

Gruß,

Moe
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.434
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.07.2016, 18:29     Titel:
  Antworten mit Zitat      
Hallo,

die "vernünftige" Variante habe ich dir bereits am 18.07.2016, 21:09 geschickt.

Ich finde eine Eingabe über input extrem mühselig für den Anwender, da er die Eingabe jedes Mal komplett neu machen muss, wenn er sich vertippt hat oder einen Wert variieren möchte.
Wenn es aus welchen Gründen auch immer aber so gemacht werden muss, dann musst du die input-Befehle in eine for-Schleife packen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
MoeE
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 17.07.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2016, 18:38     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für die Rückmeldung. Ja ich muss das leider so machen, sprich jeden Wert einzelnd eingeben. Könntest du mir da vielleicht helfen .... wie mache ich das am besten mit der for-Schleife ? Wie bringe ich das input da ein ?

Danke.

Gruß,

Moe
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.434
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.07.2016, 20:41     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ich dachte erst über "linspace" wäre es richtig

linspace erzeugt eine lineare Kurve. Es wäre absoluter Unfug, da eine Kurve dieser Form durchzulegen.

Zitat:
Könntest du mir da vielleicht helfen .... wie mache ich das am besten mit der for-Schleife ? Wie bringe ich das input da ein ?

Hast du's denn wenigstens selbst versucht?

Code:
n = input('Number of values: ');

xdata = zeros(1,n);
ydata = zeros(1,n);
for k = 1:n
xdata(k) = input('x-Wert: ');
ydata(k) = input('y-Wert: ');
end


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
MoeE
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 17.07.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2016, 13:21     Titel:
  Antworten mit Zitat      
Hallo Harald,

das was ich selbst probiert habe, hat leider überhaupt nicht funktioniert.

Danke für deine Hilfe, der Code ist super !

Gruß,

Moe
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.434
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.07.2016, 16:25     Titel:
  Antworten mit Zitat      
Hallo,

bitte poste deine Versuche immer.
Oft liegt das "überhaupt nicht funktionieren" nur an einem kleinen Fehler.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2, 3

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.