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

Interpolation eines Vektors

 

Chako

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.06.2014, 15:34     Titel: Interpolation eines Vektors
  Antworten mit Zitat      
Hallo

Ich arbeite noch nicht lange mit Matlab, deshalb ist die Aufgabe vielleicht/hoffentlich ziemlich einfach und ich sehe es einfach nicht. Hoffentlich stelle ich die Frage nicht doppelt aber ich habe noch keinen Eintrag dazu gefunden.

Also ich habe verschiedene 2D Kurven, zwischen denen ich eine neue Kurve interpolieren will. Eine ist für einen Ladezustand von 0,5 die andere für 0,8. Jetzt möchte ich gerne zwischen den beiden Kurven eine neue Kurve für unterschiedliche Ladezustände also z.b. für 0,7 interpolieren.

Die Werte sind:
x - Werte: 8,6 20 40 56 80 120 160 200 240
y- Werte(0,5): 0,671 0,838 0,865 0,868 0,862 0,839 0,81 0,77 0,732
y- Werte(0,Cool : 0,671 0,838 0,867 0,876 0,867 0,847 0,817 0,782 0,752
y- Werte(z.B. 0,7) wären zu interpoliern

Ich habe es schon mit interp1 und interp2 probiert, komme aber auf kein Ergebnis.

Kann mir bitte jemand helfen? Ich glaub ich stelle mich ziemlich verpeilt an

Lg


Mr.Ripley
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 03.06.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.06.2014, 22:23     Titel:
  Antworten mit Zitat      
Hallo

Ich bin jetzt auch nicht so sehr mit den interp Funktionen vertraut, aber das hier ist mir auf die schnelle eingefallen:

Code:

x =[8.6,20,40,56,80,120,160,200,240];
y1 =[0.671, 0.838, 0.865, 0.868, 0.862, 0.839, 0.81, 0.77, 0.732];
y2 =[0.671, 0.838 ,0.867, 0.876, 0.867 ,0.847, 0.817,0.782,0.752];
yip = 1:length(x);
z1 = 0.5;
z2 = 0.8;
zip = 0.7;

for i = 1:length(x)
    yip(i) = ((zip-z1)/z2-z1)*(y2(i)-y1(i))+y1(i);
end
 


Ich hoffe du kannst was mit Linearer Interpolation anfangen. Ansonsten kann ich dir momentan nicht weiterhelfen.

Gruß Mr.Ripley
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.06.2014, 15:41     Titel:
  Antworten mit Zitat      
Hallo

Danke das funktioniert super Smile Und lineare Interpolation kenne ich, bin bloß leider selber nicht drauf gekommen.
Aber weist du ob es auch so schon eine fertige Funktion dafür gibt, weil mein Programm in das ich es einbaue ziemlich groß ist und ich gerne for schleifen vermeiden will wo es geht. Ansonsten mache ich es aber einfach so wie du vorgeschlagen hast.

Vielen Dank Smile
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.06.2014, 00:07     Titel:
  Antworten mit Zitat      
Hallo,

INTERP macht das auch sehr gut, aber die Schleife lässt sich auch direkt vermeiden:
Code:
yip = ((zip-z1)/z2-z1)*(y2 - y1) + y1;


Gruß, Jan
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 - 2025 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.