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

Alle Vektoren im Workspace kürzen

 

Bastio1989
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 29.10.14
Wohnort: Österreich
Version: ---
     Beitrag Verfasst am: 19.02.2016, 11:14     Titel: Alle Vektoren im Workspace kürzen
  Antworten mit Zitat      
Hallo!
Gibt es eine Möglichkeit alle Vektoren im Workspace mit einem Befehl zu kürzen?
Ich lese ca 100 Vektoren ein und rund die erste hälfte der Zeit ist Mist. Das würde ich gerne bei allen rauslöschen. Klar kann ich jetzt Vektor1(tgewünscht:end) machen aber bei jedem Vektor ist ir das zu viel.
Kennt ihr was?

LG
Basti
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: 19.02.2016, 11:25     Titel: Re: Alle Vektoren im Workspace kürzen
  Antworten mit Zitat      
Hallo Bastio1989,

Zitat:
Gibt es eine Möglichkeit alle Vektoren im Workspace mit einem Befehl zu kürzen?

Von Code der automatisch die Namen aller Variablen identifiziert und die Inhalte ändert, rate ich dringend ab. Solche Meta-Programmierung schafft viele Probleme und macht den Code schnell unwartbar.

Zitat:
Ich lese ca 100 Vektoren ein und rund die erste hälfte der Zeit ist Mist.

Wie liest Du die daten ein? Wie sind sie gespeichert? Verwendest Du wirklich unpraktische Namen wie "Vektor1", bei denen ein Index im Namen versteckt ist?

Zitat:
aber bei jedem Vektor ist ir das zu viel.

Bitte erkläre das genauer. Bisher müsste man für eine antwort noch zu viel raten.

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

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 29.10.14
Wohnort: Österreich
Version: ---
     Beitrag Verfasst am: 19.02.2016, 11:53     Titel:
  Antworten mit Zitat      
Hey,
nein die namen sind bereits vergeben. Sind natürlich nicht "vektor1" usw. War nur als beispiel gedacht.
Es ist einfach eine Messdatei die ich einlese. Ich brauche allerdings nur einen Bestimmten bereich.
Die Vektoren stammen aus einer Fahrzeugmessung (sind CAN-Daten). Ich identifiziere meinen bereich (zum Beispiel von Sekunde 15000 bis 30000). Die Messung ist allerdings weitaus länger.
Zusätzlich habe ich mehrere Messdatein aus mehreren Messungen. Der "Bereich" tritt jedes Mal woanders auf.

Aber egal. Ich möchte nur alle Vektoren die sich im Workspace befinden (alle Vektoren sind gleich lang) von zB. 15000:30000 haben. Alles davor und danach löschen, da sonst die plots unlesbar werden Wink

Bei jedem Vektor einzeln den Bereich herauszuschneiden ist mir zu viel arbeit. Das meine ich.
Ich könnte ja bei jedem Vektor hinten dran (15000:30000) schreiben. Dann hätte ich den Bereich. nur muss ich dann jeden der über 100 Vektoren rausschreiben und kürzen. Das ist mir zu viel arbeit Smile


Ich dachte an soetwas wie "workspace(von:bis)" oder so. Aber ich finde weder in Google noch im Forum etwas.
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 19.02.2016, 12:01     Titel:
  Antworten mit Zitat      
Es ist möglich mit Befehlen wie WHOS, DIR zu arbeiten um Dateien und Variable einer gewissen Namenskonvention zu finden. Diese könnten dann in einer Schleife einem geeigneteten Postprocessing unterzogen werden. Es ist hier halt die Frage welche Logik entscheidet, dass die Daten nichts taugen. Aber generell wird das viel gemacht um Bereiche bevor einen Messung losgeht herauszuschneiden. In dem Beispiel lautet die Logik z.B. "Wenn mehr als 100 Werte hintereinander zwischen -0.1 und +0.1 leigen hat die Messung noch nicht begonnen.

Natürlich gibt es intelligentere Wege mit MATLAB zu messen, so dass diese "Mülldaten" erst gar nicht anfallen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Bastio1989
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 29.10.14
Wohnort: Österreich
Version: ---
     Beitrag Verfasst am: 19.02.2016, 12:18     Titel:
  Antworten mit Zitat      
Zitat:
Natürlich gibt es intelligentere Wege mit MATLAB zu messen, so dass diese "Mülldaten" erst gar nicht anfallen.

Ja, aber die Messung stammt nicht von mir. Ich habe einfach das fertige Messfile.

Zitat:
Aber generell wird das viel gemacht um Bereiche bevor einen Messung losgeht herauszuschneiden. In dem Beispiel lautet die Logik z.B. "Wenn mehr als 100 Werte hintereinander zwischen -0.1 und +0.1 leigen hat die Messung noch nicht begonnen.

Geht leider nicht, da die Werte sich davor und danch auch ändern und auch wenn ich die Bereiche erkenne müsste ich trozdem bei allen Vektoren "vektorname"(event ein:event aus) machen. Und das ist mir eben zu viel arbeit.

Gut, ich denke ich werde einfach den händishcen mühsamen Weg gehen, da Matlab das anscheinen nicht mit einem relativ einfachen Befehl kann. Und ganz tief bin ich halt auch nicht in der Materie drinnen.

"gesamter Worspace" = "gesamter Workspace(von:bis)" gibt es nicht?
oder sowas ähnliches zumindest?
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: 19.02.2016, 12:20     Titel:
  Antworten mit Zitat      
Hallo Bastio1989,

Es wäre praktisch alle Messdaten in einem Struct, Cell-Array etc. zu speichern. Dann wäre das Bearbeiten nahezu trivial.
Wenn man dagegen mit irgendwelchen Logiken nach bestimmten Vektoren im Workspace sucht, muss man zur Sicherheit prüfen, ob nicht vielleicht auf irgendwelche Datei-Namen oder was weiß ich aus Versehen mit erwischt wird.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.02.2016, 12:34     Titel:
  Antworten mit Zitat      
Hallo,

die Daten liegen wohl als .mat-Datei vor?

Dann würde es sich anbieten, mit matfile zu arbeiten und wirklich nur die gewünschten Daten einzulesen.
Selbst wenn die Namen schon vergeben sind, bietet sich für das weitere Arbeiten eine Umbenennung / Umstrukturierung an.

Grüße,
Harald
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.