|
|
Differenz zweier Vektoren unterschiedlicher länge |
|
Martin1984 |

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 29.10.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 29.10.2008, 19:36
Titel: Differenz zweier Vektoren unterschiedlicher länge
|
 |
Hi,
also ich möchte die Differenz von2 Vektoren bzw,. Matrizen berechnen und plotten.
Die eine Matrix M hat die dimension (3001x2)
Die andre Matrix S hat die Dimension: (2597195x2)
habe versucht nur jeden 100.wert der matrix S zu nehmen, aber krieg sie nicht auf die gleiche Größe
die erste spalte der beiden matrizen ist die Zeit. Wie schrumpfe ich die matrix S auf dei länge der Matrix M?
und das gleichzeitig beide die gleichen Zeitkoordinaten, bzw. die gleichen werte in der ersten Spalte haben?
Vielen dank
|
|
|
Verschoben: 30.10.2008, 10:32 Uhr von Bijick Von Matlab intern nach Programmierung |
|
|
Maddy |

Ehrenmitglied
|
 |
Beiträge: 494
|
 |
|
 |
Anmeldedatum: 02.10.08
|
 |
|
 |
Wohnort: Greifswald
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.10.2008, 11:42
Titel:
|
 |
Sind die Zeitschritte in S äquidistant? Kommen alle Zeiten aus M auch in S vor? Kannst du mal beispielhaft M und S hier zeigen?
_________________
>> why
The computer did it.
Zuletzt bearbeitet von Maddy am 30.10.2008, 13:09, insgesamt einmal bearbeitet
|
|
|
derOli |

Forum-Meister
|
 |
Beiträge: 579
|
 |
|
 |
Anmeldedatum: 19.03.08
|
 |
|
 |
Wohnort: Leipzig
|
 |
|
 |
Version: 2010a
|
 |
|
|
 |
|
Verfasst am: 30.10.2008, 12:15
Titel:
|
 |
Also du könntest Linear Time Warping benutzen, Code dazu hab ich auch noch irgendwo rumliegen. Oder du benutzt einen Tiefpassfilter und dann downsampling. Wobei da ja das Problem ist, das es ein konstanter Faktor sein muss. Also wahrscheinlich doch LTW oder du nimmst den nächsten Faktor und schneidest dann hinten ab.
hier mein LTW Code:
Der Code gibt dir in w die Werte zurück, die doppelt verwendet werden zum Vergleich.
Zum Vergleich schreibst du dann zum Beispiel:
Viele Grüße,
der Oli
|
|
|
Martin1984 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 29.10.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.10.2008, 14:37
Titel:
|
 |
Hi
danke für die schnellen antworten.
Der vektor S bzw. die matrix wurde während einer Simulation erstellt(also struct , array with time) habe dort ein pulsegenerator mit 455Hz laufen.
Die matrix M hat als zeitvektor : 0s,1s,2s
das is ein vergleich von temperaturkurvven, deswegen genügt die geringe auflösung der matrix m von 1s
|
|
|
derOli |

Forum-Meister
|
 |
Beiträge: 579
|
 |
|
 |
Anmeldedatum: 19.03.08
|
 |
|
 |
Wohnort: Leipzig
|
 |
|
 |
Version: 2010a
|
 |
|
|
 |
|
Verfasst am: 30.10.2008, 14:55
Titel:
|
 |
Funktioniert der Code bei dir?
|
|
|
Martin1984 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 29.10.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.10.2008, 15:32
Titel:
|
 |
Hi Oli,
danke für deine Hilfe, aber irgwie check ich den Code nicht.
habs probiert krieg es aber nicht hin.
also hab aus meinem struct die werte in ein Array gepseihert.
das hat die diemsion 5312227x2
will es vergleichen mit einem array welches die dimension 2764X2 hat
also laut deinem code wird doch nix mit den werten gemacht oder?
|
|
|
derOli |

Forum-Meister
|
 |
Beiträge: 579
|
 |
|
 |
Anmeldedatum: 19.03.08
|
 |
|
 |
Wohnort: Leipzig
|
 |
|
 |
Version: 2010a
|
 |
|
|
 |
|
Verfasst am: 30.10.2008, 16:29
Titel:
|
 |
doch die gibst y=5000blax2
und z= 27blax2 ein
dann bekommst du w
und dann vergleichst du
z(w) mit y
Z.b: y=10x1
z=3x1 (array)
w ist dann gleich: 1 1 1 2 2 2 2 3 3 3
dann kannst du z(w) mit y vergleichen weil die dann die gleiche Länge haben. Die fehlenden Werte in z werden einfach mehrfach linear wiedergegeben.
Grüße,
der Oli
|
|
|
Martin1984 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 29.10.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.10.2008, 20:09
Titel:
|
 |
Hi,
also nach langem rumprobieren und vor allem danke deines codes kriege ich sie auf die gleiche länge.
aber wenn ich nun die differenz bilde kriege ich nicht das gewünschte ergebnis da er werte vergleicht die nicht die gleiche zeitbasis haben.
also vergleich von ämpfel mit birnen.
kann ich nachdem ich die beiden kurven geplottet habe irgwie nachträglich die differenz der beiden kurven bilden?
quasi grafisch
|
|
|
derOli |

Forum-Meister
|
 |
Beiträge: 579
|
 |
|
 |
Anmeldedatum: 19.03.08
|
 |
|
 |
Wohnort: Leipzig
|
 |
|
 |
Version: 2010a
|
 |
|
|
 |
|
Verfasst am: 03.11.2008, 11:37
Titel:
|
 |
Die gleiche Zeitbasis haben die beiden Variablen nach deiner Beschreibung schon, das Problem ist glaube ich ein anderes:
Du hast bestimmt eine ziemlich große Varianz in deinem längeren Signal und wenn du das dann mit einem Konstanten Wert vergleichst hast du natürlich eine sehr hohe Differenz. Dh wenn du die einfache Differenz nehmen möchtest gibt es zwei wege:
1.
Du reduzierst das längere Signal, so das es am nächsten an dem kürzeren Signal ist, indem du den mean() von zB. immer 100 Werten, danach benutzt du den LTW Alg.
2.
Du machst vorher den LTW und nimmst den mean von den Signalen, die wiederholt werden, also wenn am Anfang 112 mal eine 1 in w drinsteht, nimmst du den mean von den ersten 112 Werten deines langen Signals. usw.
Sag Bescheid obs klappt oder wenn du noch Hilfe brauchst,
Grüße,
der Oli
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|