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

Spalte in Abhängigkeit anderer Spalten, Dauer zwischen VZW

 

peter3000
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
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.057
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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.