Verfasst am: 05.04.2011, 13:38
Titel: Interpolieren bei unterschiedlicher Vektorlänge
Hallo,
habe ein Problem und komme einfach auf keinen richtigen Ansatz. Ich hoffe ihr könnt mir einen Denkanstoß geben.
Ich habe zwei Vektoren mit je 100 Elementen, diese Stellen meine Interpolationstabellen dar. Nun möchte ich einen Vektor mit 150 Elementen je mit den Werten linear interpolieren und dann mir einen neuen Vektor ausgeben.
Dabei sollen Werte die nicht interpoliert werden können auf null gesetzt werden.
Hier ein Beispiel in Tabellenform
5 1,0
10 3,0
15 5,3
20 7,4
..........
Meine Vektor mit 150 Elementen hat z.B,. folgende Werte:
[1 3 6 9 11...]. Das heißt die Elemente 1 und 2, Wert 1 und 3, sollen null gesetzt werden und dann wird mit Element 3 (Wert 6) zum ersten mal interpoliert und dieser Wert (soltte dann 1.4 sein) wird in einem neuen Vektor gespeichert, z.B. so [0 0 1.4 ...]
Ich hoffe es ist verständlich wo mein Problem liegt. Habe leider keine ganzheitliche Lösung zu dem Problem.
Gruß
Gast
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 05.04.2011, 14:14
Titel:
Hi,
Code:
M=[51.0;10,3;15,5.3;20,7.4]; %deine Matrix, kann natürlich auch 100 oder mehr Zeilen haben
v=[136911] %dein Vektor, kann dann deine 150 Werte enthalten
y=interp1(M(:,1),M(:,2),v,'linear');
%du hast dann erstma NaNs an den Stellen die nicht interpoliert werden
%können, wenn sie durch Nullen ersetzt werden sollen, geht das so:
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.