Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Mathematik mit MATLAB

Studierende:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Spalte in Abhängigkeit anderer Spalten, Dauer zwischen VZW

 

peter3000
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 30.03.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2021, 11:08     Titel: Spalte in Abhängigkeit anderer Spalten, Dauer zwischen VZW
  Antworten mit Zitat      
Hallo,

ich bin noch recht neu im Matlab-Game Smile

ich habe eine sehr große Matrix mit mehreren Spalten.
Spalte 1= Zeit
Spalte 2= Abstand zu einer Linie (mit Vorzeichen)
Spalte 3= Vorzeichen des Abstands (-1 oder 1)
Spalte4 = nan
Spalte 5 = nan
etc.

Ziel:
Zeitdauer zwischen jedem Vorzeichenwechsel (Abstand zur Linie auslesen)
Maximale Amplitude eines jeden Abstands zur Linie auslesen (zwischen zwei VZW)

Wie kann ich in Spalte 4 ein Zähler implementieren, der nach jedem Vorzeichenwechsel steigt?

Wie kann ich damit die Dauer der einzelnen VZW auslesen?
Wie kann ich anschließend die maximale Amplitude des Abstandssignals zwischen zwei VZW auslesen Smile ?


Vielen Dank schon einmal im Vorfeld Smile Ich hoffe, dass mir jemand helfen kann

Liebe Grüße
Peter3000 Smile
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.037
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 31.03.2021, 16:26     Titel: Re: Spalte in Abhängigkeit anderer Spalten, Dauer zwischen
  Antworten mit Zitat      
Hallo peter3000,

Ein kleiner Satz von Beispiel-Daten ist immer hilfreich. In welchem Format wird die "Zeit" gespeichert? Hier kommt es nämlich darauf an, wie man die "Zeitdauer" berechnet.

Die Vorzeichenwechsel erhältst du mit:
Code:
Change = [true, diff(Data(:, 3)) ~= 0];

Der Zähler ist dann;
Code:
Counter = zeros(size(Change));
Counter(Change) = 1;
Counter = cumsum(Counter);

Das Maximum für jede Phase erhältst du dann mit dem Befehl accumarray oder splitapply .

Gruß Jan
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2021 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.