www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Matlab" - Interpolation mehrere Werte
Interpolation mehrere Werte < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Interpolation mehrere Werte: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:21 Mo 21.04.2014
Autor: polari500

Hallo,
habe eine Drehzahl-Drehmoment-Kurve gegeben. Abgespeichert in einer Matrix (300 111;800 109;1000 125;2000 141;3000 169;4000 185;5000 198;6500 188). Erste Spalte ist Drehzahl, 2. Drehmoment.
Nun soll ich für beliebige Drehmomente die Drehzahl interpolieren. Gelöst hab ich das mit interp1. allerdings gibt matlab mir immer nur eine lösung aus. bei einem Drehmoment von aber zum Beispiel 190 hätte ja eigentlich sowohl eine drehzahl von 4400 als auch von 6200. interp1 gibt mir nur die 6200 aus. was kann ich tun?
Vielen Dank im Voraus.
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

        
Bezug
Interpolation mehrere Werte: Antwort
Status: (Antwort) fertig Status 
Datum: 19:02 Mo 21.04.2014
Autor: leduart

Halloi
wie kommst du auf die 4200 aus den beschriebenen Daten?
aber wie bildest du denn die Interpolation, genau? du musst doch matlabsagen, was es tun soll:
Gruss leduart

Bezug
                
Bezug
Interpolation mehrere Werte: mein Matlabbefehl
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 07:53 Di 22.04.2014
Autor: polari500

Der Wert bei 4... war ein schätzwert von mir. Es ist mir nur darum gegangen, dass ja noch ein 2. Wert existiert.
Mein matlabbefehl sieht folgendermaßen aus:
dn=[300 111;800 109;1000 125;2000 141;3000 169;4000 185;5000 198;6500 188];
M=input('M:');
n=interp1(dn(:,2),dn(:,1),M,'linear')

Gebe ich jetzt für M zb.:190 ein kommt als Antwort nur der Wert bei 6200.
obwohl ja zwischen 4000 und 5000 umdrehungen eben auch noch ein Wert wäre.
Vielen Dank schon mal

Bezug
                        
Bezug
Interpolation mehrere Werte: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 17:00 Di 22.04.2014
Autor: leduart

Hallo
zw. 4000 und 5000 ist M zwischen 169 und 185 also nie 190. vielleicht weisst du, dass da noch ne 190 liegt, ich und matlab nicht.
Gruß leduart

Bezug
                                
Bezug
Interpolation mehrere Werte: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 17:38 Di 22.04.2014
Autor: polari500

Glaub da hast du dich verlesen.
zwischen 4000 und 5000 umdrehungen ist M zwischen 185 und 198. also würde da die 190 drin liegen genauso wie zwischen 5000 und 6500, dort liegt M zwischen 198 und 188.
Hast du vielleicht eine Matlabfunktion parat die beide werte erkennt?
Danke

Bezug
                                        
Bezug
Interpolation mehrere Werte: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 19:29 Di 22.04.2014
Autor: leduart

Hallo
ich hab kein funktionierendes matlab, hast du denn die Dokumentation von interpl nachgesehen?
mit n= kann er sicher nur einen Wert ausgeben
Gruß leduart

Bezug
                                                
Bezug
Interpolation mehrere Werte: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 22:33 Di 22.04.2014
Autor: polari500

Ja habe die interp1 durchgelesen, werde aber leider nicht schlau daraus.
Warum kann er mir für n= nur einen Wert ausgeben? könnte mir doch auch einen Vektor ausgeben?
Nur der Vollständigkeit halber, werde mein Problem auch noch im Matlab forum posten.
Vielen Dank

Bezug
                                                        
Bezug
Interpolation mehrere Werte: Antwort
Status: (Antwort) fertig Status 
Datum: 17:49 Mi 23.04.2014
Autor: leduart

Hallo
wenn deine x(y) keine monotone fkt ist, kann man z.b in der nähe eines minimums oder maximums ja auch gar nicht interpolieren. deshalb kannst du nur deine Tabelle in 2 (oder mehr) monotone Teile trennen und dann deine Interpolation machen.
oder du schreibst selbst ein kleines Programm, allerdings mit dem wissen oben, dass es in der Nähe des Umkehrpunktes falsche Werte liefert.
Gruß leduart

Bezug
                                                
Bezug
Interpolation mehrere Werte: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 22:50 Di 22.04.2014
Autor: Marcel

Hallo Leduart,

> Hallo
>  ich hab kein funktionierendes matlab,

octave tut's (meist) fast genauso gut - falls Du mal Matlabähnlich arbieten
willst, Dir aber die Kosten dafür nicht antun willst. ;-)

Gruß,
  Marcel

Bezug
                                                        
Bezug
Interpolation mehrere Werte: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 00:33 Mi 23.04.2014
Autor: leduart

Hallo Marcel
Danke
Gruß leduart

Bezug
        
Bezug
Interpolation mehrere Werte: Monotonie-Voraussetzung
Status: (Antwort) fertig Status 
Datum: 11:17 Mi 23.04.2014
Autor: Al-Chwarizmi

Hallo polari500

Ich habe bei []Matlab nachgeschaut und gefunden:


yi = interp1(x,Y,xi,method) interpolates using alternative methods:

    * 'nearest' for nearest neighbor interpolation
    * 'linear' for linear interpolation
    * 'spline' for cubic spline interpolation
    * 'cubic' for cubic interpolation

All the interpolation methods require that x be monotonic.



Bei deiner Verwendung des Befehls:

Mein matlabbefehl sieht folgendermaßen aus:
dn=[300 111;800 109;1000 125;2000 141;3000 169;4000 185;5000 198;6500 188];
M=input('M:');
n=interp1(dn(:,2),dn(:,1),M,'linear')


ist aber die Folge x , also im Klartext  dn(:,2)  nicht monoton.

Da du also diese Voraussetzung für den Matlab Befehl
nicht einhältst, kannst du auch nicht erwarten, mehr
als einen Interpolationswert zu erhalten.

LG ,   Al-Chw.


Als Ausweg könntest du ja z.B. in jedem einzelnen
Teilintervall zwischen den gegebenen Datenpunkten
prüfen, ob es da einen möglichen Zwischenwert gibt !


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]