WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Oximetriewert ausfindig machen

 

Freeza
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 24.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2012, 19:17     Titel: Oximetriewert ausfindig machen
  Antworten mit Zitat      
Hallo Leute,
ich bin neu hier und arbeite auch erst seit kurzem mit Matlab. Ich habe ein kleines Problem, das ich so nicht lösen kann und bräuchte eure Hilfe.

Also ich habe ein Oximetriesignal mit rund 21.000 Datensätzen (1x21000; jede Sekunde ein Datensatz)
nun will ich die Werte ausfindig machen, die länger als 1 Minute unter 90 gehen.

Wie kann ich das lösen? ich habe leider nicht so viel Programmiererfahrung in Matlab. Ich kann wohl ein wenig C programmieren.

Gruß und danke für jede Hilfe Smile
Private Nachricht senden Benutzer-Profile anzeigen


aj.geissler
Forum-Guru

Forum-Guru



Beiträge: 251
Anmeldedatum: 26.11.07
Wohnort: Seeheim-Jugenheim
Version: ---
     Beitrag Verfasst am: 12.06.2012, 15:29     Titel:
  Antworten mit Zitat      
Hi,

probier mal folgendes:

x sei dein Vektor mit den 21.000 Oximetriewerten.

Jetzt machen wir folgendes. Wir binarisieren x. Dort, wo x kleiner als 90 ist, machen wir eine 1, ansonsten eine Null.

xbin=(x<90);

Jetzt bilden wir die Differenz aus aufeinanderfolgenden Werten und ergänzen am Anfang den zuerst vorkommenden Wert oder einen definierten Wert (0)

dx=diff(xbin);
dx=[0,dx];


dx enthält zu Beginn der Unterschreitung deines Wertes 90 eine 1. Bei Rückkehr überhalb der 90 eine "-1", ansonsten haben wir Null.

Jetzt schaun mer mal: Wo haben wir +1 und wo -1...

kmin=find(dx>0.5);
kmax=find(dx<-0.5);

Jetzt kann man (bei gleicher Länge von kmin und kmax) sich Start und Endwerte in einer Matrix zusammenfassen:

K=[kmin;kmax]

Jetzt suchst Du Bereiche, die länger als 60 Samples unterhalb 90 sind:

DK=diff(K);

Hier haben wir nur die Differenz zwischen Zeile 2 und Zeile 1 berechnet.

DKsel=find(DK>59);

KSEL=K(:,DKSEL);

Jetzt haben wir in der 1. Zeile die Start-Indices und in der 2. Zeile die End-Indices der Abschnitte.

Mit x(KSEL(1,1):1,KSEL(2,1)) erhält man den 1. Abschnitt

Wichtig. Paß auf mit Anfangs und Endbedingungen !
Kann sein, daß deine Oxiwerte bereits mit Werten kleiner als 90 beginnen oder enden.

Auch bitte aufpassen, ob dein x ein Zeilen oder Spaltenvektor ist. Kann sein, daß du manchmal anstelle eines Kommas ein semikolon verwenden mußt.

Viele Grüße
Andi
Private Nachricht senden Benutzer-Profile anzeigen
 
Freeza
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 24.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.06.2012, 16:11     Titel:
  Antworten mit Zitat      
Hi danke für deine Antwort und deine Bemühung.

Leider ist das Projekt bereits beendet. Das Forum hier antwortet anscheinend recht langsam Sad. Aber kein Problem.

Ich habe Professoren gefragt Smile und ziemlich das gleich bekommen, was du mir da gegeben hast Smile

es läuft und Projekt ist abgegeben.

Danke noch einmal Smile

schönen Abend noch
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 12.06.2012, 16:45     Titel:
  Antworten mit Zitat      
Freeza hat Folgendes geschrieben:
Hi danke für deine Antwort und deine Bemühung.

Leider ist das Projekt bereits beendet. Das Forum hier antwortet anscheinend recht langsam Sad. Aber kein Problem.

Ich habe Professoren gefragt Smile und ziemlich das gleich bekommen, was du mir da gegeben hast Smile

es läuft und Projekt ist abgegeben.

Danke noch einmal Smile

schönen Abend noch


Langsam?
Weil das Thread im Forum "Signalverarbeitung" erstellt worden ist. Das ist aber ein Spezialgebiet, in dem wenige sich auskennen. Also lesen die meisten solche Post nicht mal. Die Frage hatte aber nicht wirklich etwas mit Signalverarbeitung zu tun
Private Nachricht senden Benutzer-Profile anzeigen
Verschoben: 12.06.2012, 16:45 Uhr von denny
Von Signalverarbeitung nach Programmierung
 
Freeza
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 24.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.06.2012, 17:34     Titel:
  Antworten mit Zitat      
so mein ich das nicht.

nur 10 Tage für eine Antwort bzw. das erkennen eines Eintrages in einem falschen Bereich ist meiner Ansicht nach schon ein wenig langsam. Aber ich will wirklich niemanden kritisieren.

Wollte nur sagen, dass ich das in der Zwischenzeit schon hinbekommen hatte und natürlich Danke für alle Antworten.

Ich dachte es wäre ein Signal...??
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 13.06.2012, 10:53     Titel:
  Antworten mit Zitat      
Hallo Freeza,

Alle Antwortenden in diesem Forum arbeiten auf freiwilliger Basis. Die Arbeitsgeschwindigkeit von Helfern zu kritisieren, die in Ihrer Freizeit versuchen dich zu unterstützen, wäre vollkommen unangebracht.

Wenn Du bereits von anderer Seite eine Lösung bekommen hast, wäre es sehr hilfreich, wenn Du dies hier im Forum auch erwähnst, so dass diejenigen, die Dir helfen wollen, ihre Zeit nicht verschwenden.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Freeza
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 24.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.06.2012, 11:05     Titel:
  Antworten mit Zitat      
Hey Leute jetzt Mal ehrlich, dass kann man nun auch zwanzig Mal hochspielen. Ich habe es nicht kritisiert. Ich weiß schon wie ein Forum funktioniert von gestern bin ich ja nun nicht.

Ich habe es nicht kritisiert zumindest nicht so, wie es hier hingenommen wird.

Ich habe mich bei aj.geissler für seinen Beitrag bedankt und ihm geschrieben, dass es ziemlich genau so aufgebaut ist, wie er beschrieben hat. Demnach kann er davon ausgehen, dass sein Code funktioniert.

Ich habe es nicht kritisiert, dass ich so spät eine Antwort bekomme (denn diese Dauert von benötigtem Code auch unterschiedlich lange). Ich habe es eher kritisiert, dass erst nach 10 Tagen nach dem eine Antwort kam gesehen wurde, dass ich im falschen Forumbereich den Eintrag gemacht habe und dieser nicht verschoben wurde.

Ich bin kein Experte in diesem Gebiet und kann daher den Eintrag schon unabsichtlich in einem falschen Bereich machen. Aber ich denke, dass wenn es für Admins oder sonstige forenkundige Personen 10 Tage dauert, jemandem mitzuteilen, dass der Eintrag an der falschen Stelle ist, es schon langsam ist.

Ist aber auch nur meine Ansicht.

Ich muss mich jetzt aber nicht angreifen lassen, da ich niemanden angegriffen habe. Schließlich habe ich mich bei geissler bedankt und ebenfalls bei denen, die sich einen Gedanken gemacht haben, drum weiß ich nicht wo nun das Problem liegt! Aber belassen wir das so, sonst wird noch unnötig viel diskutiert.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.