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

Mit regexp bestimmte Zeilen aus einer Datei einlesen

 

kwd46056
Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 27.10.17
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 16.01.2018, 15:07     Titel: Mit regexp bestimmte Zeilen aus einer Datei einlesen
  Antworten mit Zitat      
Hallo Forum-Mitglieder,

ich möchte aus einer Datei folgende Beispielzeile mit dem Befehl regexp in Matlab einlesen:

No. Nat.Damping Frequency

# 55/ 56 | -1.2329E+00 +/- 4.8474E+00 | 0.2465 0.7715 | 0.7961 |

Komm da im Moment nicht weiter.

Meine Idee wäre folgendermaßen anzufangen. Ist das soweit plausibel?

Code:

filename    = fullfile(folder.folder, folder.name, [baseName '-' folder.name '.eva']);      %Datei im Ordner finden
evaContent  = fileread(filename);
   
   rgxEM       = '#(?<no>[^|]+)|   ';                                                                       %regulärer Ausdruck zum filtern der Zeilen
   emMatches   = regexp(evaContent, rgxEM, 'names');                                           %Gefundene Eigenwerte
 


wie müsste man bei rgxEM weiter vorgehen um die Werte von Nat.Damping und Frequency einzulesen?

Danke im voraus

Mit freundlichen Grüßen
Kwirink David
Private Nachricht senden Benutzer-Profile anzeigen


kwd46056
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 27.10.17
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 16.01.2018, 15:11     Titel:
  Antworten mit Zitat      
Hier nochmal die Tabelle, da im vorherigen Post sie nicht richtig dargestellt wird



# No. | Real-Part Imag.-Part | Nat.Damping Frequency | Undamped Frequency |
# | [1/s] [rad/s] | [-] [Hz] | f0 [Hz] |
# ----------+----------------------------+------------------------+--------------------+
# 53/ 54 | -7.7786E-01 +/- 3.2181E+00 | 0.2349 0.5122 | 0.5269 |

Gruss
kwd46056
Private Nachricht senden Benutzer-Profile anzeigen
 
SigiSorglos
Forum-Century

Forum-Century


Beiträge: 147
Anmeldedatum: 24.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2018, 15:18     Titel:
  Antworten mit Zitat      
hast du mal versucht anstatt fileread() den Befehl readtable() zu nutzen? Dann hättest du das als Tabelle eingelesen und könntest ganz einfach auf die einzelnen Spalten zugreifen.
Private Nachricht senden Benutzer-Profile anzeigen
 
kwd46056
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 27.10.17
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 16.01.2018, 15:50     Titel:
  Antworten mit Zitat      
Hallo,

wäre natürlich auch eine Option. Da ich aber mehrere Ordner habe, in der die Datei vom typ .eva drin ist und diese dazu alle auch noch unterschiedlich viele Zeilen haben, möchte ich mit einer for-Schleife alle Ordner durchlaufen lassen und mittels regexp die kompletten eigenwerte mit der dazugehörigen Dämpfung und Frequenz herausfiltern und in einer Matrix abspeichern. Brauche dann die abgespeicherten Werte als Variable, da ich sie dann plotten muss.

Gruss
kwd46056
Private Nachricht senden Benutzer-Profile anzeigen
 
SigiSorglos
Forum-Century

Forum-Century


Beiträge: 147
Anmeldedatum: 24.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2018, 16:21     Titel:
  Antworten mit Zitat      
Das kannst du ja prinzipiell so machen. Du durchläufst einfach deine Ordner und liest die Dateien zunächst mit readtable() ein. Anschließend speicherst du den Inhalt dann in einer weiteren Matrix, in der die bereits eingelesen Werte schon vorhanden sind.

Pseudocode:
Code:
matrix=[];
for f=1:anzahlOrdner
fileContent=readtable(fileName)

Matrix=[Matrix fileContent.frequency]
Matrix=[Matrix fileContent.dampfung]
end
Private Nachricht senden Benutzer-Profile anzeigen
 
kwd46056
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 27.10.17
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 17.01.2018, 12:25     Titel:
  Antworten mit Zitat      
Hallo,

danke für die Antwort, hab es jetzt trotzdem mit den regexp-Befehl hinbekommen. Trotzdem vielen Dank für die Hilfe.

Gruss
kwd46056
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.