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

interpolier algo

 

annamega

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2008, 09:31     Titel: interpolier algo
  Antworten mit Zitat      
Hallo leute ich hab ein problem.

und zwar hab ich zufällige messwerte y und die dazugehörenden x werte (z. B. [1, 2, 3, 4, ..., 20]). Jetzt möchte ich den auf interpolation beruhenden y wert zum x wert 5.3541 zum beispiel.
hat da jemand nen ordentlichen algorithmus.

gruesse


steffi
Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 07.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2008, 09:52     Titel:
  Antworten mit Zitat      
Schau mal in der Hilfe nach

Code:


vielleicht kommst du damit schon weiter!
_________________

Wenn ich bei der Arbeit mit Computern eins gelernt habe dann das ich einem Computer nur soweit traue wie ich ihn werfen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
keloid
Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 17.06.2008, 09:53     Titel:
  Antworten mit Zitat      
Um generell einen Interpolationswert zu erhalten, braucht man eine Funktionsvorschrift, der die Funktionswert (hier also y-Werte) folgen.
So wie ich das verstehe, ist diese Funktionsvorschrift nicht bekannt, also musst Du Dir zuerst darueber Gedanken machen, wie Du den Funktionsabschnitt zwischen zwei bekannten Wertepaaren modellieren willst.

Im einfachsten Fall ist das natuerlich eine Gerade, fuer die wuerde der Code dann in etwa wie folgt aussehen:
Code:
x = [...]; % X-Werte
y = [...]; % Y-Werte (also Messdaten)

x0 = 5.3541; % X-Koordinate des gesuchten Wertepaars.

lb = max(find(x<=x0)); % Ist der Index des groessten X-Werts, der kleiner oder gleich x0 ist. Das ist wichtig, wenn die X-Werte nicht bei 1 losgehen oder nicht den Abstand 1 haben.
ub = min(find(x>=x0)); % Ist der Index des kleinsten X-Werts, der groesser oder gleich x0 ist.
if lb == ub
y0 = x(lb);
else
y0 = (y(ub)-y(lb))/(x(ub)-x(lb))*(x0-x(lb))+y(lb); % Berechnung anhand einer Geradengleichung, der Bruch ist dabei die Steigung der Geraden.
end
 


Fuer andere Interpolationen als eine Gerade muss eben die vorletzte Zeile entsprechend geaendert werden.

Edit: Wieso einfach, wenns auch schwer geht :D
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



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.