Jede Spalte ist von der anderen Abhängig.
Also sind quasi in einer Spalte die zueinander gehörigen Daten.
Wie kann ich nun alle Spalten mit mehreren Zwischenwerten versehen, um eine höhere Abtastrate zu simulieren?!
Mein Ziel ist folgendes: Ich habe eine weitere Matrix, mit Werten die denen der ersten Spalte entsprechen - jedoch eine viel höhere Abtastrate.
Dann soll nachgeschaut werden, welcher Wert entspricht hierraus am nahesten einem Wert der ersten Spalte und die zugehörigen Werte aus der zweiten und dritten Spalte ausgegeben werden.
Habe es schon mit interp1 ausprobiert, jedoch war das Ergebnis nicht zufriedenstellend. Der Plot war immernoch ziemlich "hakelig".
Vielen Dank schon einmal, und beste Grüße
gast112233
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 17.01.2014, 13:30
Titel:
Habe gerad gesehen, dass der Code nicht als Tabelle dargestellt wird.
Deswegen anbei nocheinmal ein Bild der Darstellung.
jedoch war das Ergebnis nicht zufriedenstellend. Der Plot war immernoch ziemlich "hakelig".
wenn du selber schon deine beschreibung des problems in anführungsstriche setzen musst kannst du davon ausgehen das das nicht sehr aussagekräftig ist ^^.
bitte eine genauere beschreibung was du gemacht hast und was du als ergebniss erwartest.
_________________
jedoch war das Ergebnis nicht zufriedenstellend. Der Plot war immernoch ziemlich "hakelig".
wenn du selber schon deine beschreibung des problems in anführungsstriche setzen musst kannst du davon ausgehen das das nicht sehr aussagekräftig ist ^^.
bitte eine genauere beschreibung was du gemacht hast und was du als ergebniss erwartest.
Sorry, Winkow, ist schwer zu beschreiben
Ich hoffe, der folgende Code wird ein wenig Aufschluss darüber geben, was gewollt ist.
Code:
x=1:795; %795 Messwerte sind vorhanden
y_1=MTS(:,1)'; %Spalte 1 des Kennfeldes
y_2=MTS(:,2)'; %Spalte 2 des Kennfeldes
y_3=MTS(:,3)'; %Spalte 3 des Kennfeldes
xi=1:0.1:795; %der zu interpolierende Bereich
MTS(:,1)=Test1(:,2); %Test1 setzt sich aus den aufgeneommen Messwerten über der Zeit zusammen (Spalte 1: Zeit, Spalte 2: Winkel, versch. viele Zeilen (je nach Messung))
MTS(:,2)=interp1(x,y_1,xi); %Spalte 1 mit Zwischenwerten versehen
MTS(:,3)=interp1(x,y_2,xi); %Spalte 2 mit Zwischenwerten versehen
MTS(:,4)=interp1(x,y_3,xi); %Spalte 3 mit Zwischenwerten versehen
%%Suchen und Ausgeben der passenden Werte
M = MTS;
for k=1:size(M,1),
[m, ind] = min(abs(M(:,2) - M(k,1)));
M(k,5) = M(ind,3); %Speichern des Wertes aus Spalte 2
M(k,6) = M(ind,4); %Speichern des Wertes aus Spalte 3 end
Das erste Beispiel der Doku für GRIDDATA geht darum Daten die "wild" verteilt sind in ein uniformes Gitter zu interpolieren. Ein uniformes Gitter auf ein anderes, engmaschigeres Gitter zu internpolieren kann man genauso implementieren.
Andreas
Gast112233
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 17.01.2014, 18:33
Titel:
Winkow hat Folgendes geschrieben:
wenn du mit hackelig meinst das er nicht linear interpolieren soll sondern kubisch dann must du ihm das sagen ^^
Also sollte die Lösung des Problems sein, dass ich hinten als Zusatz cubic zugebe? ^^
Sorry Andreas, ich kann Dir nicht ganz folgen.
Die Daten dürfen nur Zeilenweise geordnet werden.
Ich habe nicht so wirklich den Sinn und Zweck von griddate mit meshgrid verstanden.
Durch meine oben beschriebene Interpolation verfälsche ich meine Daten nicht, oder? Letztendlich wird ja alles über einen Zeitstrahl interpoliert.
Interpolation verfälsche ich meine Daten nicht, oder?
bei interpolation werden immer daten aus annahmen erzeugt. wenn diese annahmen falsch sind sind die daten natürlich auch nicht gut ^^.
quadratische interpolation kann zu besseren ergebnissen führen. muss aber nicht zwagsweise sein. es kann auch sein das dabei werde generiert werden die weiter weg vom realen liegen als die linare interpolation. grade bei deinem bild oben siht es so aus als wäre das keine schöne analytische funktion. vieleicht würde sich da auch anbieten die funktion in bereiche aufzuteilen.
_________________
OK, ich dachte Matrix==2D. Nein, dann ist mein Vorschlag nicht mehr sinnvoll.
Andreas
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.