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

Lokale Maxima ausgeben lassen

 

IceColdMan
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 11.01.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2017, 11:43     Titel: Lokale Maxima ausgeben lassen
  Antworten mit Zitat      
Hallo,

mir liegen Datensätze für die Vertikalbewegung (A.Car_tz.data) eines Fahrzeugs vor, welcher mit CarMaker ermittelt wurde. Im Anhang findet ihr den plot. Die y-Achse beschreibt die Translation in cm in Abhängigkeit der Zeit (x-Achse).

Nun möchte ich jeweils das Maximum und Minimum der 1. Schwingungen, der 2.,3. usw.. herausfinden.

Meine erster Ansatz war mithilfe von max den Zeitbereich der einzelnen Schwingungen einzugrenzen:

Code:

a_max_tz1=max(A.Car_tz.data(1:end,4000:4200));
a_max_tz2=max(A.Car_tz.data(1:end,4200:4400));
 


Da das Signal immer die gleiche "Form" hat und sich nur in der Größe der Vertikalbewegung unterscheidet, funktioniert das auch.
Nun ist es aber möglich dass das Signal zeitlich verschoben ist, und die Eingrenzung über den Zeitbereich nicht mehr stimmt.

Wie kann ich das umgehen und mir direkt die Max und Min der jeweiligen Schwingungen ausgeben lassen?

Oder einfach gesagt: Ich suche eine Funktion wie "findmax2" und "findmax3" Very Happy

Schwingung.PNG
 Beschreibung:

Download
 Dateiname:  Schwingung.PNG
 Dateigröße:  15.96 KB
 Heruntergeladen:  240 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.02.2017, 11:55     Titel:
  Antworten mit Zitat      
Hallo,

wenn du die Signal Processing Toolbox hast, versuch mal findpeaks .

Falls du die Toolbox nicht hast, hilft vielleicht dies weiter:
https://www.mathworks.com/matlabcen.....k-finding-and-measurement

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
IceColdMan
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 11.01.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2017, 12:58     Titel:
  Antworten mit Zitat      
Okay super, das funktioniert! DANKE!


Dann noch eine andere Frage, ganz anderes Thema:

Ich lasse die Datensätze über cmread einlesen.

Nun möchte ich, dass es beim plot in die Legende den jeweiligen Dateinamen schreibt, der eingelesen wurde.
Wie kann ich das umsetzen und z.B. den Dateinamen einer Variablen zuordnen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.02.2017, 13:10     Titel:
  Antworten mit Zitat      
Hallo,

für ein ganz anderes Thema mache bitte auch einen neuen Thread auf ;)

Ich kenne cmread nicht und habe auf die Schnelle nichts zur Arbeitsweise davon gefunden. Ich würde aber davon ausgehen, dass man bei cmread auch den Dateinamen angibt, etwa so:
Code:
filename = 'blabla.ext';
A = cmread(filename);


Dann kannst du später ja auch
Code:

schreiben.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
IceColdMan
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 11.01.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2017, 13:25     Titel:
  Antworten mit Zitat      
Ich wollte nicht das gesamte Forum mit meinen "leichten" Fragen überfluten^^

Mein Skript läuft so ab, dass man über A=cmread aufgefordert wird eine Datei auszusuchen, welche nachfolgend das Skript durchläuft.

Der Dateiname wird also erst nach dem Start des Skripts festgelegt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.02.2017, 13:40     Titel:
  Antworten mit Zitat      
Hallo,

wenn ich das richtig sehe, kann man cmread auch mit Dateinamen aufrufen, siehe z.B. hier:
http://www.gomatlab.de/for-schleife.....en-einzulesen-t25198.html

Wenn der Dateiname interaktiv ausgewählt werden soll, dann kann man das vorab mit uigetfile machen:

Code:
[fname, pname] = uigetfile;
cname = fullfile(pname, fname);

A=cmread(cname);

...
legend(fname)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
IceColdMan
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 11.01.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2017, 15:02     Titel:
  Antworten mit Zitat      
Danke Harald!

Und einen schönen Tag noch! Smile
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.