Werte nicht auslesen < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 10:31 Mo 24.09.2007 | Autor: | Donath |
aus dem mit 200hz abgeleiteten EKG wurden die Abstände der großen Zacken in Millisekunden (ca. 800-1000) bestimmt, die sogenannten R-Zacken.
Leider jedoch auch mit 200hz
Wie kann ich in Mathlab eine Funktion schreiben, die es mir ermöglicht, alle doppelten werte rauszuschmeissen. Ich brauche ja nur jeweils einen R-Zackenabstand und nicht 150......
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:40 Mo 24.09.2007 | Autor: | Martin243 |
Hallo,
mir ist das Problem noch nicht ganz klar. Welche doppelten Werte sind das? Könntest du das vielleicht grob skizzieren, wie die Eingangsdaten aussehen, wie die Ausgabe und wie die gewünschte Ausgabe?
Gruß
Martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:55 Mo 24.09.2007 | Autor: | Donath |
HI,
da stehen untereinander ca. 120-200 gleiche Werte, von denen ich nur einen - den ersten - benötige. Das entsprciht dann sozusagen dem rr-abstand.
Alle doppelten werte sollen rausfliegen.
danke
|
|
|
|
|
Aaah, da stehen also die R-Zacken-Positionen im Vektor, oder?
Nun, ich würde es auf die Schnelle so machen:
Wir übernehmen auf jeden Fall das erste Element und schauen dann nur noch, wo sich zwei aufeinanderfolgende Elemente unterscheiden. Das zweite Element eines solchen Paars übernehmen wir jeweils auch.
Bei einem Spaltenvektor data würde das so aussehen:
t_spike = [data(1); data(1 + find(data(1:end-1) ~= data(2:end)))];
Gruß
Martin
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 10:07 Di 25.09.2007 | Autor: | Donath |
Hallo,
wenn ich das gleiche wie beim EKG mache habe ich die vielen gleiche werte im csv file.
Habe ich eine chance die dopplungen in excel rauszukriegen.
das wäre besser
hast du eine idee
die matlablösung geht nicht
excel wäre in diesem fall günstiger
merci
|
|
|
|
|
Hallo,
hmmm, Excel ist nicht so meine Spezialität. Eine hässliche Lösung könnte ich dir trotzdem anbieten. Man kann sie hübscher machen, indem bei der Abfrage der Ergebnisse die "#BEZUG!"-Fehler per IST.FEHLER() herausgefilert werden.
Idee:
Daten in Spalte A.
In Spalte D steht per Formel die aktuelle Zeilennummer, falls sich der entsprechende Wert in Spalte A vom Wert darüber unterscheidet, sonst eine Magic Number, hier einfach mal 99999.
In Spalte F stehen die Zeilennummern direkt hintereinander. Sie werden über das Minimum eines bestimmten Bereich herausgefiltert, deshalb diese große Magic Number.
In Spalte H stehen schließlich die "komprimierten" R-Spitzen-Zeitpunkte (war doch so, oder?) gefolgt von etlichen "#BEZUG!"-Fehlern.
Etwas Besseres ist mir nicht eingefallen. Aber vielleicht kann man das ja ausbauen...
Excel-Datei
Gruß
Martin
Dateianhänge: Anhang Nr. 1 (Typ: xls) [nicht öffentlich]
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 12:45 Di 25.09.2007 | Autor: | Donath |
kannst du dir dir csv datei der rr-abstände anschauen
so kommt es als aus mathlab raus....kann man das in mathlab so einrichten, dass es gleich so gefiltert kommt
ansonsten würde ich auch die excelvariante "nehmen"
merci vielmals für deine unendliche hilfe
Dateianhänge: Anhang Nr. 1 (Typ: csv) [nicht öffentlich]
|
|
|
|
|
Hallo,
jetzt bin ich verwirrt. Zuerst schreibst du, dass die Matlab-Variante nicht geht, dass eine Excel-Lösung günstiger wäre, und jetzt wäre Matlab doch besser?
Wenn die Daten eh aus Matlab kommen, dann hast du ja oben schon die Lösung. Dort werden die Daten reduziert und dann kannst du sie in ein csv-File schreiben (du warst das also mit dem Umbrechen der langen Spalten!).
Falls die Daten (und an der Stelle verstehe ich etwas nicht) aber aus einem csv-File kommen, das vorher wiederum von Matlab geschrieben wurde (???), dann kannst du die Daten wieder einlesen per:
data = dlmread('dateiname', ';');
data = reshape(data, prod(size(data)), 1);
Nun hast du wieder eine ganz lange Spalte an Daten, die du wieder nach gewohnter Methode "entdoppeln" kannst.
Habe ich etwas missverstanden?
Gruß
Martin
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 13:55 Di 25.09.2007 | Autor: | Donath |
hallo martin,
sorry für die verwirrung
ich habe dir in letzten text mal ein csv file angehangen. Ich kann deine excelmaske nicht über 3-5 spalten ziehen leider
kannst du dir das mal anschauen
ich denke excel ist ok
danke danke
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 13:57 Di 25.09.2007 | Autor: | Donath |
soweit komme ich martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 13:58 Di 25.09.2007 | Autor: | Donath |
hier der anhang
Datei-Anhang
Dateianhänge: Anhang Nr. 1 (Typ: csv) [nicht öffentlich]
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 15:42 Di 25.09.2007 | Autor: | Donath |
kannst du dir den anhang bitte nochmal anschauen.
ich kann die zeilen nicht übertragen und dann die entsprechenden werte auflisten.
bin heute abend spät nochmal im netz...bei deinem know how geht das sicher schnell
ich habe mir bereits den ganzen nachmittag die zähne ausgebissen
lieben dank martin!!!
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:52 Di 25.09.2007 | Autor: | Martin243 |
So, ich habe eben geantwortet. Ich hoffe, damit klärt sich die Frage.
Gruß
Martin
|
|
|
|
|
Hallo,
ich sehe das Problem und ich glaube, ich habe es gelöst. Zumindest habe ich es mal mit den ersten 1000 Zeilen deiner Daten versucht. Fehlerfrei!
Aber: Du hast es nicht anders gewollt! *irres Gelächter*
Es fuktioniert irgendwie, aber frag mich nicht, wie...
Im Groben:
A,B,C sind die Daten (da fällt mir ein: Die könnte man auch auf einem anderen Arbeitsblatt unterbringen, dann hätte man beliebig viele Spalten...)
E,F,G die Maske. Beachte, dass sich die 3 Zellen der ersten Maskenzeile diesmal unterscheiden! Das war nötig, um die umgeborchenen Daten vergleichen zu können. Scheint zu funktionieren.
I enthält die Zeilen des jeweils ersten Auftretens (wie gehabt)
J enthält die entsprechenden Spalten (oder besser: die Offsets zur Spalte A)
Ja, und in K haben wir die säuberlich sortierten Daten. Natürlich mit Datenmüll darunter...
Ich habe mal die Maske bedingt formatiert, sieht schöner aus, aber das ist ja Nebensache...
Ach ja! Wie man unschwer erkennen kann, musst du die Spalten- und Zeilenzahl immer anpassen. Die Magic Number passt sich dann automatisch kleinstmöglich an.
So, ich musste eben noch etwas debuggen bei einem Sonderfall. Ich hoffe, es klappt einigermaßen.
Excel-Datei
Gruß
Martin
Dateianhänge: Anhang Nr. 1 (Typ: xls) [nicht öffentlich]
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 11:47 Mi 26.09.2007 | Autor: | Donath |
Hallo Martin,
ich habe nun alle Werte rüberkopieren wollen, da zeigt er mir allerdings leider keine weiteren RR Abstände ganz rechts an.
Meine Rohdaten sind zwischen 168000 und 300000 Werte, also 3 Spalten bzw. 5 Spalten. Jede Spalte wird bis zur Zeile 65536 in Excel geschrieben Dann gehts weiter in Spalte 2...usw.
Kannst du mir nochmal helfen wie ich die Daten rüberschiebe und er mir dann gleich die RR Abstände links anzeigt.
Vielleicht ist die Idee mit der weiteren Arbeitsmappe nicht schlecht.
Deine Hilfe ist unglaublich...danke danke.
Ich werde auch weiterprobieren....kannst ja nochmal die eine rohdatei die ich dir geschickt habe anschuene (die hat 168000) daten.
merci
Lars
|
|
|
|
|
Hallo,
ich habe mal etwas herumgebastelt und bekomme ein plausibles Ergebnis. Aus 168000 Werten bekomme ich etwas über 1000 Einzelwerte.
Die Datei enthält drei Tabellen:
"Daten" -> nur die Daten, neue können einfach importiert werden
"erstmaliges Auftreten" -> entspricht den bisherigen Spalten E,F,G
"Ergebnis" -> Zwischenergebnisse, Ergebnis und Konfiguration, also die bisherigen Spalten I aufwärts.
Der Vorteil ist hier eben, dass die Spaltenzahl (quasi) unbegrenzt ist. Natürlich müssen die Hilfstabellen immer noch an die Größe der Datentabelle angepasst werden, aber diesmal steht nichts im Weg.
Ach übrigens: Excel ist die PEST! Die Berechnung kann etwas dauern, also nicht wundern...
Matlab wäre da wohl etwas schneller.
Da die Datei etwas groß wurde, habe ich die Hilfstabellen wieder auf wenige Zeilen beschränkt...
Excel-Datei
Gruß
Martin
Dateianhänge: Anhang Nr. 1 (Typ: xls) [nicht öffentlich]
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:37 Do 11.10.2007 | Autor: | Donath |
sorry Martin,
ich habe noch keine gelegenheit gehabt mich angemessen für diese geniale lösung zu bedanken du bist echt ein altruistischer genius....danke danke....
bis bald und geniess die zeit
Lars
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:42 Fr 12.10.2007 | Autor: | Martin243 |
Alt? Rüstig? Ach altruistisch... Moment... *tipp, tipp, tipp* Ach so, das sagt die Wikipedia dazu!
Genius verstehe ich aber...
Danke!
Gruß
Martin
|
|
|
|