>Der eine Vektor X = <54813x2 double>
>Der andere y = <547183x2 double>
ich würde mal sagen Du hast zwei Matrizen X und y !
>Für einen x existieren 10 y Werte, nun will ich den x an y anpassen/interpolieren.
und einen Faktor 10 sehe ich zwischen den Beiden auch nicht ?!
außerdem, was ist gemeint mit x an y anpassen??
Interpolation bedeutet zwischen zwei Abtastpunkten einen dritten berechnen bzw. "hineininterpolieren" der bestimmte Kriterien erfüllt (z.B. soll er auf einer geraden Verbindungslinie zwischen beiden Punkten liegen => 'linear')
Gast
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 24.07.2009, 10:38
Titel:
Idefix_1024 hat Folgendes geschrieben:
>Der eine Vektor X = <54813x2 double>
>Der andere y = <547183x2 double>
ich würde mal sagen Du hast zwei Matrizen X und y !
>Für einen x existieren 10 y Werte, nun will ich den x an y anpassen/interpolieren.
und einen Faktor 10 sehe ich zwischen den Beiden auch nicht ?!
außerdem, was ist gemeint mit x an y anpassen??
Interpolation bedeutet zwischen zwei Abtastpunkten einen dritten berechnen bzw. "hineininterpolieren" der bestimmte Kriterien erfüllt (z.B. soll er auf einer geraden Verbindungslinie zwischen beiden Punkten liegen => 'linear')
Es ist etwas weniger als Faktor 10, und variiert von Aufzeichnung zu Aufzeichnung, das war ja auch nur als Beispiel von mir genannt.
Was ich mit anpassen meinte ist, dass der Graf von x genauso viele Zeilen (selbe Länge) haben soll wie y. Verwendet wird jeweils nur die 2 (hätte ich vielleicht erwähnen sollen).
es gibt zwei datensätze x1, y1 und x2, y2
die Anzahl der Abtastpunkte stimmt nicht überein
man möchte die Stützstellen des ersten Datensatzes auch im zweiten Datensatz haben.
Also Interpolation des 2. Datensatzes an den Abtastwerten x1
falls es nicht genau das ist was du meinst, so kann man daraus aber sicher die gesuchte Lösung basteln...
Gast
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 24.07.2009, 13:14
Titel:
Ich bekomme beim plotten ein Error.
???Error using --> plot Vectors must be the same lengths???
mein Beispiel funktioniert und sollte nur zeigen wie man das Problem anpacken könnte...
aber ohne einen Code von dir kann ich auch nur raten was du eigentlich willst.
was Du gemacht hast kann ich so leider nicht sehen... hellsehen kann ich nicht
Gast
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 24.07.2009, 13:44
Titel:
sorry wenn ich mich etwas blöd anstelle, arbeite erst seit kurzem mit Matlab und hab deshalb so meine Schwierigkeiten.
Habe folgende Werte mit Hilfe deines Beispiels erstellt:
ja schau doch mal die Dimensionen an von s1 v1 und s2 v2
da fällt doch auf, dass s2 und v2 unterschiedlich sind. Das ist der Grund warums nicht geht
was haben denn s2 und v2 gemeinsam???
die kann man nicht zusammen plotten!
da kann man auch nix interpolieren, weil gar nicht klar ist wie das Wertepaar einander zuzuordnen ist...
kleineres Beispiel:
a = [0 1 2]
b = [1 4 7 9 8]
wie soll man die beiden nun plotten? was soll bei rauskommen?
a = 0 ist b = 1 zugeordnet
a = 1 ist b = 4 zugeordnet
a = 2 ist b = 7 zugeordnet
und was ist nun mit b = 9 und b = 8 ???
ich bin scheinbar doof aber ich will nicht verstehen was Du da vor hast
wie hast du denn eigentlich die zwei bilder erstellt, die du hochgeladen hast??
Gast
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 24.07.2009, 14:57
Titel:
Die Bilder entstanden durch das separate plotten der S-Matrize und der v-Matrize.
Ich weis was du mit dem kleinen Beispiel zeigen willst, aber in meinem Fall
muss es gehen.
Ich versuch mal so zu erklären.
Wenn ich die Daten aufzeichne erhalte ich für die Aufzeichnungszeit in etwa 10 mal so viele s-Signale als v-Signale.
Das heißt, dass für jeden v-Signal die nächsten ca. 10 s-Signale gelten.
Deshalb ja auch meine Aussage am Anfang das es sich um den Faktor 10 handelt, dieser ist jedoch nicht genau 10 (variiert zw.9 und 10).
Und genau aus diesem Grund muss eine interpolation von v an s möglich sein.
Danke das du dir schon mal so viel Zeit genommen hast mir da zu helfen
trotzdem sehe ich keinen Weg wie man nun alle vier Messdaten-Vektoren auf EINE Abtastzeit bringen kann...
was haben die denn gemeinsam?
ist vielleicht das Abtastintervall verschieden aber der Gesamt-Mess-Zeitraum identisch zB 0 bis 2 Sekunden bei allen vier?
dann könnte man EINEN Zeitvektor einführen und jeden Vektor einzeln in die Neue Zeitbasis interpolieren... das ist ja auch dann das was ich schon gepostet habe
deshalb nochmal meine Frage
was hast du da für Daten????
for i=1:length(v2) % einfach jeden Wert aus v2 zehnmal in v2neu schreiben
v2neu(i : i+10-1) = v2(i);
end
% den jeweils etwas grösseren Vektor kürzen:
laenge_zum_plotten=min([length(v2neu)length(s2)]);
v2neu=v2neu(1:laenge_zum_plotten);
s2=s2(1:laenge_zum_plotten);
yi= sind die interpolierten Werte von y (Solllänge von 547183 Einheiten)
v(:,1)= die ursprüngliche x-Achse (mit der Länge 54813 Einheiten)
y= die ursprünglichen y-Achse
s(:,1)= die soll x-Achse (mit der Länge 547183 Einheiten)
Danke euch Beiden für die Hilfe.
Einstellungen und Berechtigungen
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.