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

Bestimmte Zeilen und Spalten aus einer txt.Dat herausziehen

 

kwd46056
Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 27.10.17
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 29.12.2017, 10:39     Titel: Bestimmte Zeilen und Spalten aus einer txt.Dat herausziehen
  Antworten mit Zitat      
Guten Morgen zusammen,

ich benötige wieder mal Hilfe zu einem Matlab Skript. Bin wie bereits bekannt ein Neuling in Matlab und weiss nicht so genau wie in diesem Fall ansetzen soll. Ich hoff ihr könnt mir hier paar Tipps geben.

Im allgemeinen geht es darum einen 3D-Plot mit 4 Variablen zu erzeugen.

Ich habe nun mittels einem MKS-Programm 27 txt.Dateien erhalten, in dem für unterschiedliche Parametervariationen die Eigenwerte ausgegeben wurden. Im folgenden ist ein Beispiel für die txt.Datei dargestellt:

136 # number of Eigenvalues (total)
4 # number of Eigenvalues with positive Real Parts
1 # number of Zero Eigenvalues
#
# No. | Real-Part Imag.-Part | Nat.Damping Frequency | Undamped Frequency |
# | [1/s] [rad/s] | [-] [Hz] | f0 [Hz] |
# ----------+----------------------------+------------------------+--------------------+
# 1 | -3.9850E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 2 | -3.9850E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 3 | -3.9796E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 4 | -3.9796E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 5 | -3.9735E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 6 | -3.9735E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 7 | -3.9639E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 8 | -3.9639E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 9 | -3.7500E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 10 | -3.7500E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 11 | -3.7500E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 12 | -3.7500E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 13 | -3.7458E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 14 | -3.7458E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 15 | -3.7452E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 16 | -3.7452E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 17 | -2.9962E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 18 | -2.9962E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 19 | -2.9950E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 20 | -2.9950E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 21 | -2.9936E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 22 | -2.9936E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 23 | -2.9926E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 24 | -2.9925E+03 + 0.0000E+00 | 1.0000 0.0000 | |
# 25 | -5.0472E+02 + 0.0000E+00 | 1.0000 0.0000 | |
# 26 | -4.9600E+02 + 0.0000E+00 | 1.0000 0.0000 | |
# 27 | -4.9228E+02 + 0.0000E+00 | 1.0000 0.0000 | |
# 28 | -4.8387E+02 + 0.0000E+00 | 1.0000 0.0000 | |
# 29 | -2.7314E+02 + 0.0000E+00 | 1.0000 0.0000 | |
# 30 | -2.7291E+02 + 0.0000E+00 | 1.0000 0.0000 | |
# 31 | -2.5918E+02 + 0.0000E+00 | 1.0000 0.0000 | |
# 32 | -2.5620E+02 + 0.0000E+00 | 1.0000 0.0000 | |
# 33 | -2.2500E+02 + 0.0000E+00 | 1.0000 0.0000 | |
# 34 | -2.2500E+02 + 0.0000E+00 | 1.0000 0.0000 | |
# 35 | -2.0253E+02 + 0.0000E+00 | 1.0000 0.0000 | |
# 36 | -1.9922E+02 + 0.0000E+00 | 1.0000 0.0000 | |
# 37 | -1.4070E+00 + 0.0000E+00 | 1.0000 0.0000 | |
# 38 | -8.8481E-01 + 0.0000E+00 | 1.0000 0.0000 | |
# 39 | -6.0779E-01 + 0.0000E+00 | 1.0000 0.0000 | |
# 40 | -6.0222E-01 + 0.0000E+00 | 1.0000 0.0000 | |
# 41 | -2.7272E-03 + 0.0000E+00 | 1.0000 0.0000 | |
# 42 | -3.0801E-04 + 0.0000E+00 | 0.0000 0.0000 | |
# 43 | -1.6220E-08 + 0.0000E+00 | 0.0000 0.0000 | |
# 44 | 5.3959E-04 + 0.0000E+00 | 1.0000 0.0000 | |
# 45/ 46 | 6.5022E-04 +/- 1.6571E-03 | -0.3653 0.0003 | 0.0003 |
# 47/ 48 | -7.6856E-01 +/- 3.1962E+00 | 0.2338 0.5087 | 0.5232 |
# 49/ 50 | -2.0411E+00 +/- 4.7832E+00 | 0.3925 0.7613 | 0.8277 |
# 51/ 52 | -1.4083E+00 +/- 6.4239E+00 | 0.2141 1.0224 | 1.0467 |
# 53/ 54 | -1.5109E+00 +/- 6.6136E+00 | 0.2227 1.0526 | 1.0797 |
# 55/ 56 | -2.8117E+00 +/- 6.9336E+00 | 0.3758 1.1035 | 1.1908 |
# 57/ 58 | -6.7307E+01 +/- 3.0545E+01 | 0.9106 4.8614 | 11.7638 |
# 59/ 60 | -6.5575E+01 +/- 3.0721E+01 | 0.9056 4.8894 | 11.5251 |
# 61/ 62 | 3.7215E+00 +/- 3.1411E+01 | -0.1177 4.9993 | 5.0342 |
# 63/ 64 | 3.4117E+00 +/- 3.1701E+01 | -0.1070 5.0453 | 5.0745 |
# 65/ 66 | -4.9218E+00 +/- 3.3428E+01 | 0.1457 5.3202 | 5.3776 |
# 67/ 68 | -5.1677E+00 +/- 3.3513E+01 | 0.1524 5.3338 | 5.3968 |
# 69/ 70 | -9.5432E+00 +/- 3.8267E+01 | 0.2420 6.0904 | 6.2769 |
# 71/ 72 | -8.9656E+00 +/- 3.8630E+01 | 0.2261 6.1481 | 6.3115 |
# 73/ 74 | -2.4637E+00 +/- 3.9106E+01 | 0.0629 6.2239 | 6.2363 |
# 75/ 76 | -1.4852E+00 +/- 4.3324E+01 | 0.0343 6.8952 | 6.8992 |
# 77/ 78 | -1.3959E+00 +/- 4.4342E+01 | 0.0315 7.0573 | 7.0608 |
# 79/ 80 | -2.8876E+00 +/- 4.7247E+01 | 0.0610 7.5196 | 7.5336 |
# 81/ 82 | -6.5239E-01 +/- 1.3357E+02 | 0.0049 21.2585 | 21.2587 |
# 83/ 84 | -7.4736E-01 +/- 1.3365E+02 | 0.0056 21.2716 | 21.2719 |
# 85/ 86 | -4.7561E+01 +/- 1.5126E+02 | 0.3000 24.0740 | 25.2359 |
# 87/ 88 | -4.7989E+01 +/- 1.5176E+02 | 0.3015 24.1538 | 25.3326 |
# 89/ 90 | -1.8828E+01 +/- 1.5768E+02 | 0.1186 25.0955 | 25.2737 |
# 91/ 92 | -1.9032E+01 +/- 1.5789E+02 | 0.1197 25.1294 | 25.3113 |
# 93/ 94 | -1.2560E+00 +/- 1.7279E+02 | 0.0073 27.4999 | 27.5006 |
# 95/ 96 | -1.2579E+00 +/- 1.7294E+02 | 0.0073 27.5245 | 27.5253 |
# 97/ 98 | -6.1068E+00 +/- 2.0914E+02 | 0.0292 33.2859 | 33.3001 |
# 99/ 100 | -5.9945E+00 +/- 2.0922E+02 | 0.0286 33.2985 | 33.3122 |
# 101/ 102 | -1.1152E+01 +/- 2.2700E+02 | 0.0491 36.1286 | 36.1721 |
# 103/ 104 | -1.1047E+01 +/- 2.2702E+02 | 0.0486 36.1306 | 36.1734 |
# 105/ 106 | -2.1266E+01 +/- 2.3502E+02 | 0.0901 37.4048 | 37.5576 |
# 107/ 108 | -2.0935E+01 +/- 2.3646E+02 | 0.0882 37.6339 | 37.7811 |
# 109/ 110 | -4.7981E+01 +/- 2.8712E+02 | 0.1648 45.6970 | 46.3306 |
# 111/ 112 | -4.9660E+01 +/- 2.8843E+02 | 0.1697 45.9048 | 46.5803 |
# 113/ 114 | -3.2386E+01 +/- 3.3646E+02 | 0.0958 53.5486 | 53.7961 |
# 115/ 116 | -3.3241E+01 +/- 3.3967E+02 | 0.0974 54.0603 | 54.3186 |
# 117/ 118 | -3.3945E+01 +/- 3.8500E+02 | 0.0878 61.2748 | 61.5125 |
# 119/ 120 | -3.4808E+01 +/- 3.8783E+02 | 0.0894 61.7257 | 61.9738 |
# 121/ 122 | -1.1335E+02 +/- 1.9388E+03 | 0.0584 308.5694 | 309.0963 |
# 123/ 124 | -1.1348E+02 +/- 1.9431E+03 | 0.0583 309.2559 | 309.7829 |
# 125/ 126 | -1.1513E+02 +/- 1.9581E+03 | 0.0587 311.6436 | 312.1818 |
# 127/ 128 | -1.1457E+02 +/- 1.9591E+03 | 0.0584 311.8072 | 312.3399 |
# 129/ 130 | -1.0379E+02 +/- 2.0495E+03 | 0.0506 326.1865 | 326.6045 |
# 131/ 132 | -1.0428E+02 +/- 2.0608E+03 | 0.0505 327.9815 | 328.4012 |
# 133/ 134 | -1.0491E+02 +/- 2.0632E+03 | 0.0508 328.3741 | 328.7983 |
# 135/ 136 | -1.0589E+02 +/- 2.0739E+03 | 0.0510 330.0654 | 330.4954 |

Diese Eigenwerte in der Tabelle sind jetz für eine Geschwindigkeit von 50km/h, einer Dämpfung von 3Ns/m und lambda von 0.1 gültig.
Ich möchte nun das Matlab mir die Zeilen und Spalten mit negativer Dämpfung (farbig markiert) herausfilter und als 4 Variable in einem 3D-Plot (lambda (x), Geschwindigkeit (y), Dämpfung(z)) plottet.

Das erste Problem bei dem ich nicht weiß wie ich beginnen soll, ist das einlesen der txt. Dateien. Das MKS-Programm hat für jede Parametervariation einen eigenen Ordner angelegt, bei dem die txt.Datei hinterlegt ist. Wie gehe ich da am klügsten vor? Wäre für paar Tipps sehr dankbar.

Gruss
kwd46056
Private Nachricht senden Benutzer-Profile anzeigen


wusa
Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 20.06.17
Wohnort: Berlin
Version: 2021
     Beitrag Verfasst am: 29.12.2017, 22:35     Titel:
  Antworten mit Zitat      
Eventuell hilft die Funktion textread. Hier eine schöne Erklärung dazu:

https://www.cs.utah.edu/~germain/PPS/Topics/Matlab/textread.html
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.12.2017, 00:18     Titel:
  Antworten mit Zitat      
Hallo,

ich würde ja sagen, in der Doku zu textread steht all das, was in dem Link steht, und mehr: nämlich, dass die Funktion nicht mehr empfohlen wird und stattdessen textscan.
Bei der Datei wird es aber so oder so mühsam, die Einstellungen so zu machen, dass sie richtig eingelesen wird. Am einfachsten dürfte es sein, das interaktiv über Rechtsklick --> Import Data zu machen und dann aus der Auswahl eine Funktion zu generieren.

Grüße,
Harald
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: 09.01.2018, 21:35     Titel:
  Antworten mit Zitat      
Guten Abend,

brauch mal wieder hilfe. Habe folgenden Code geschrieben, der mir das Verzeichnis mit Ordnern festlegt. Desweitern habe ich jetzt die einzelnen Ordner aus dem Verzeichnis als Vektor in ein 1x32 cell geschrieben. Wie kann ich jetzt die Dateien in den Unterordnern mit der Endung .spck in die jeweiligen cell einlesen? hab das mit dem Befehl dir versucht, allerding bringt er mir da die Fehlermeldung:

Error using dir Function is not defined for 'cell' inputs.
Error in Untitled6 (line 19)
files = dir([pth{1,1} '*.spck']);

Code:

%% Verzeichnis festlegen
d = genpath('C:\Users\David\Desktop\finished\models\DoE_LinStability');    %Dateinamen werden vom Ordner DoE_LinStability eingelesen

pth = genpath('C:\Users\David\Desktop\finished\models\DoE_LinStability');  
pth = regexp([pth ';'],'(.*?);','tokens');                                 %Vektor der einzelnen Pfade als Eintrag


% Dateiname aus dem Unterordner einlesen
files = dir([pth '*.spck']);                                               % Alle Dateien einlesen
for i=1:length(files)
   m=dlmread(files{i});                                                    % hier wird Dateieingelesen  
end


Könnt ihr mir da weiterhelfen?

Gruss kwd46056
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.01.2018, 22:28     Titel:
  Antworten mit Zitat      
Hallo,

bitte grundsätzlich für eine neue Frage ein neues Thema aufmachen.

Seit R2016b kann dir direkt Dateien aus Unterverzeichnissen einlesen. Wenn du also diese oder eine neuere Version hast, kannst du dir das Leben damit deutlich vereinfachen. Insbesondere falls nicht, schreib das bitte in dein Profil oder gib es bei der Fragestellung an.

Grüße,
Harald
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: 10.01.2018, 07:51     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für die Antwort, werde deine Forderungen beim nächsten mal beherzigen. Ich benutze die Version R2016b.

Den Befehl
Code:
wollte ich benutzen. Dieser bringt mir aktuell aber eine Fehlermeldung.

Error using dir Function is not defined for 'cell' inputs.
Error in Untitled6 (line 19)
files = dir([pth '*.spck']);

Habe auch schon versucht, dass Verzeichnis d, ohne genpath einzulesen und dann mit
Code:
die Dateien aus den Unterordnern einzulesen. Ohne Erfolg

Code:

%% Verzeichnis festlegen
d = genpath('C:\Users\David\Desktop\finished\models\DoE_LinStability');    % Dateinamen werden vom Ordner DoE_LinStability eingelesen

pth = d;  
pth = regexp([pth ';'],'(.*?);','tokens');                                                      % Vektor der einzelnen Pfade als Eintrag


% Dateiname aus dem Unterordner einlesen
files = dir([pth '*.spck']);                                                                         % Alle Dateien einlesen
for i=1:length(files)
   m=dlmread(files{i});                                                                           % hier wird Dateieingelesen  
end
 


Gruss
kwd46056
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.01.2018, 09:03     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Habe auch schon versucht, dass Verzeichnis d, ohne genpath einzulesen und dann dir die Dateien aus den Unterordnern einzulesen. Ohne Erfolg

... und was genau hast du da versucht? Hast du ** verwendet, um alle Unterverzeichnisse durchzugehen?

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