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

wie teilt man ein Vektor nach bestimte zeit intervallen auf?

 

Godlebt
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 30.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2015, 18:55     Titel: wie teilt man ein Vektor nach bestimte zeit intervallen auf?
  Antworten mit Zitat      
Hallo an alle,

es geht um folgendes Problem: Ich habe eine zeitliche Messreihe (Messung des Puls über 40s) als Vektor eingelesen, der natürlich eine ganze Reihe an Werten enthält. Nun soll ich diesen Vektor in 5 vektoren nach zeit Intervalle( [0s- 9.7360s] ]9.7360s-12.4455s] ]12.4455s-13.3798s] ]13.3798s-23.6565s] ]23.6565s-40s]) aufteilen und jeweils den Mittelwert ,max,min,daraus bestimmen.
Die Bestimmung des Mittelwertes, max,min wäre kein Problem, aber ich habe keine Ahnung wie ich den Vektor aufsplitten soll Confused
Wäre sehr froh, wenn mir jemand weiterhelfen könnte.

Vielen Dank im voraus

Ps:Framerate=60; % 60 Werten der Puls pro sekunde

Ich hoffe ,dass es jetzt besser formuliert ist...

Godlebt
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.04.2015, 19:04     Titel:
  Antworten mit Zitat      
in welcher form liegen die daten vor?
Code:
12.4455s-13.3798s
ist das ein char array?
das siht komisch aus.
code beispiele sind meist besser.
auerßdem ist es uninteressant ob es sekunden oder bananen sind. hier jedenfalls. alles was nicht notwendig zur lösung ist sollte man weglassen Smile
falls du aber einfach ein array hast in dem 40x60 einträge sind also 2400 kannst du einfach ein reshape benutzen.
Code:
A=rand(40*60,1);
B=reshape(A,[],5);
C=mean(B);
so ca.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Godlebt
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 30.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2015, 19:35     Titel:
  Antworten mit Zitat      
..Danke erst mal...
0.7207 0.7512 0.5535 0.9515 0.9768
0.0137 0.8312 0.6306 0.9650 0.1255
0.3741 0.9223 0.9855 0.7653 0.7522
0.9227 0.3270 0.6343 0.5745 0.8271
0.5465 0.8041 0.6005 0.9159 0.7814
0.4739 0.5383 0.9092 0.4954 0.1909......

Die Anzahl der Werten pro Zeit intervallen sollte nicht gleich seien,da die Zeit intervalle ganz unterschiedlich sind....(zeit Intervalle( [0s- 9.7360s] ]9.7360s-12.4455s] ]12.4455s-13.3798s] ]13.3798s-23.6565s] ]23.6565s-40s])

ps: der Versuchs person hat 5 unterschiedliche Aufgaben wärend diese 5 zeit intervalle erledigt.....

Vielen Dank im Voraus
Beste Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.04.2015, 19:41     Titel:
  Antworten mit Zitat      
wie gesagt du hast immernoch keine daten zur verfügung gestellt. giebt es einen zeit vektor? oder musst du den generrieren? logisches indizieren und eine forschleife sollte helfen das problem zu lösen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Godlebt
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 30.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2015, 19:44     Titel:
  Antworten mit Zitat      
.....Die "Start" und "End" zeit jeder Ereignisse sind richtig.Ich habe sie durch ein for schleife bekommen.....

[0s- 9.7360s] =>aufgabe1 ist erledigt. ]9.7360s-12.4455s] =>aufgabe2 ist erledigt. ]12.4455s-13.3798s] =>aufgabe3 ist erledigt.]13.3798s-23.6565s] =>aufgabe4 ist erledigt.]23.6565s-40s] =>aufgabe5 ist erledigt. .
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.04.2015, 19:47     Titel:
  Antworten mit Zitat      
das siht mir nicht nach der richtigen matlab syntax aus
Code:
[0s- 9.7360s]
um daraus die zeiten als zahlenwerte zu bestimmen müsste man das s und das - eleminieren und vielleicht mit textscan arbeiten. das ist sehr umständlich zu verarbeiten. einfacher wäre es nur die zahlen ohne einheiten zu speichern.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Godlebt
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 30.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2015, 20:00     Titel:
  Antworten mit Zitat      
... zeit muss ich nicht generieren...ich habe bereit ein zeit vektor....
Di intervalle habe ich selbst gemach,damit du siehst was ich brauche...

Über matlab mit einer for schleife könnte ich nur folgende punkten bekommen:

Na =

9.7360 %%Ende der Aufgabe1


Ge =

12.4455%%Start der Aufgabe2


J =

13.3798%%start der Aufgabe3


Geb =

23.6565 %%start der Aufgabe4....usw
dann habe ich selbst die Intervall hier wie folgt geschrieben....
--->>(zeit Intervalle( [0s- 9.7360s] ]9.7360s-12.4455s] ]12.4455s-13.3798s] ]13.3798s-23.6565s] ]23.6565s-40s])
Private Nachricht senden Benutzer-Profile anzeigen
 
Godlebt
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 30.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2015, 20:03     Titel:
  Antworten mit Zitat      
...sorryy:Sad

so meinte ich...
Na =

9.7360 %%Ende der Aufgabe1


Ge =

12.4455%%Ende der Aufgabe2


J =

13.3798%%Ende der Aufgabe3


Geb =

23.6565 %%Ende der Aufgabe4....usw

dann habe ich selbst die Intervall hier wie folgt geschrieben....
--->>(zeit Intervalle( [0s- 9.7360s] ]9.7360s-12.4455s] ]12.4455s-13.3798s] ]13.3798s-23.6565s] ]23.6565s-40s])
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.04.2015, 20:12     Titel:
  Antworten mit Zitat      
darum ist es besser gültige matlab syntax und code zu verwenden. Smile
Code:
Na =

9.7360 %%Ende der Aufgabe1
das ist eindeutig.
Code:
0s- 9.7360s]
das ist irgendwas Smile
wahrscheinlich kann man die aufgabe bereits in der for schleife die du zur erzeugung der variablen benutzt lösen aber ich bin mir nicht sicher ohne die schleife zu sehen. es wäre insgesammt einfacher wenn du eine variable für die startzeiten verwendest und nicht 5. ein array kann man einfach mit einer schleife abarbeiten. 5 namen lassen sich so nicht in einer schleife bearbeiten.
da du immernoch kein richtiges beispiel gebastelt hast muss ich jetzt mal ein wenig improvisieren und mir selber eins ausdenken um die zu verdeutlichen was zu machen ist.
Code:
Matrix=1:1000;
Zeit=(1:numel(Matrix));
startzeiten=[1,10,100,200,500,Zeit(end)];
mittel=nan(numel(startzeiten)-1,1);
for kk=1:numel(startzeiten)-1
    mittel(kk)=mean(Matrix(Zeit>=startzeiten(kk) & Zeit<startzeiten(kk+1)))
end
so ca
in deiner beschreibung gehört die selbe zeit zu 2 ereignissen. das hab ich hier nicht gemacht. kann man aber anpassen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Godlebt
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 30.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2015, 20:53     Titel:
  Antworten mit Zitat      
...gibt immer noch fehlermeldung Surprised

Code:
Zeit=(1:numel(eda0));
startzeiten=[0,Na,Ge,J,Geb,zeit(end)]
mittel=nan(numel(startzeiten)-1,1)
for kk=1:numel(startzeiten)-1
    mittel(kk)= mean(eda0(zeit>=startzeiten(kk) & zeit<startzeiten(kk+1)))
 end

??? Index exceeds matrix dimensions.

Error in ==> EMMATest at 6
    mittel(kk)= mean(eda0(zeit>=startzeiten(kk) &
    zeit<startzeiten(kk+1)))

edit winkow: bitte code umgebung benutzen
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.04.2015, 20:57     Titel:
  Antworten mit Zitat      
sowas ist ein fall für den debugger.
aber ich hab meinen zeitvektor einfach so generiert. du musst natürlich deinen eigenen verwenden der zu den daten gehört. außerdem ist matlab case sensitive. zeit und Zeit sind zwei unterschiedliche dinge
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Godlebt
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 30.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2015, 21:18     Titel:
  Antworten mit Zitat      
...hi Smile
jetzt keiner Störung mehr aber...ich muss morgen noch richtig sehen...

Könntest du mir bitte die Kommentar in die geschriebene Code einfügen...

herzliche Dank im Voraus
Private Nachricht senden Benutzer-Profile anzeigen
 
Godlebt
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 30.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.04.2015, 10:56     Titel:
  Antworten mit Zitat      
Hallo Smile

meine Problem habe ich jetzt so gelöst

Code:
%%%%% Eda0 wird hier getrennt je nach "Aktion"
v1=eda0(60:floor(Na*60)); %eda0 Augabe1
v2=eda0(Na*60:floor(Ge*60));%Eda0 Aufgabe2
v3=eda0(Ge*60:floor(J*60)); %eda0 Augabe3
v4=eda0(J*60:floor(Geb*60)); %eda0 Aufgabe 4


Dann habe ich dei mean, max, min für v1...v4 berechnet...

Herzliche dank für die Mühe
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.