Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Studierende:
Praktikant Toolentwicklung Matlab (m/w)
Branche: Beratung, Expertise, Fahrzeugtechnik, Fahrzeugteile, Technische Dienstleistungen
MBtech Group GmbH & Co. KGaA - Fellbach

Abschlussarbeit / Praktikum: Entwicklung Matlab (m/w)
Branche: Informationstechnologie, Elektrotechnik, Elektronik
GIGATRONIK Technologies GmbH - Ulm

Studentischer Mitarbeiter (m/w) - DevOps / Toolentwicklung
Branche: mehrere
IAV GmbH - Ingenieurgesellschaft Auto und Verkehr - Berlin

Praktikant (m/w) Bereich Konzernvorausentwicklung - Aktoren sicherheitsrelevanter Anwendungen
Branche: Fahrzeugtechnik, Fahrzeugteile, Maschinentechnik, Industrietechnik
MAHLE International GmbH - Stuttgart

Praktikum - Softwareentwicklung Java
Branche: mehrere
IAV GmbH - Ingenieurgesellschaft Auto und Verkehr - Dresden, Gifhorn

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

String an spezifischen Positionen splitten und exportieren

 

Rupert

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.10.2017, 13:46     Titel: String an spezifischen Positionen splitten und exportieren
  Antworten mit Zitat      
Hi Leute ich bin auf der Suche nach einer Lösung um eine Art Log-File zu parsen und zwar in folgendem Format:

Ausgangsdatei ist ein Textfile mit einer Spalte:

C0562300023
A4500143592
B1237630000
Q0002304591
..
weitere 10'000 solcher Einträge...
..

Ich möchte das umwandeln und in 3 Spalten aufteilen und exportieren:

C 05623 00023
A 45001 43592
B 12376 30000
Q 00023 04591

Wie geht das effizient?

Vielen Dank Smile


SigiSorglos
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 24.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.10.2017, 14:57     Titel:
  Antworten mit Zitat      
Hast du die Spalten bereits als Strings importiert?

Dann einfach so:

Code:
s='C0562300023'

s1=s(1)
s2=s(2:6)
s3=s(7:end)


Oder suchst du speziell nach dem Einlesen und Schreiben des Textfiles?
Private Nachricht senden Benutzer-Profile anzeigen
 
Rupert

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2017, 13:27     Titel: String an spezifischen Positionen splitten und exportieren
  Antworten mit Zitat      
Genau sowas hab ich gesucht Smile

Hab da noch ne weitere Frage:

Mit dem Folgenden Code lade ich ein Dat-File rein mit über 8000 Einträgen der Art 'V5353206932'. Ich möchte diese Einträgen aufsplitten und ins Excel exportieren. Das Ding braucht aber ewigs für diese Umwandlung...optimierung?

Code:
RawDat = importdata('Schicht.dat') %lädt das .dat File der Schicht als Cell-Array

%initialisierung

RawDatLength=length(RawDat)

T = cell(RawDatLength,3) %array generieren


for RawDatLine = 1:RawDatLength
   
    A1 = (RawDat{RawDatLine})     %Zugriff auf einen Eintrag im Array

    B1 = A1(1)
    B2 = A1(2:6)
    B3 = A1(7:end)     %aufteilen des Strings in mehrere Blöcke

    C2 = str2num(B2)
    C3 = str2num(B3)    %umwandeln in verarbeitbare Zahlen

    T{RawDatLine,1} = B1
    T{RawDatLine,2} = C2
    T{RawDatLine,3} = C3 %array füllen

end
 
xlswrite('test.xls',T)

 


Grüsse Rupert
 
SigiSorglos
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 24.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2017, 13:44     Titel:
  Antworten mit Zitat      
Evtl. hilft dir folgendes:

Code:
 B1=   cellfun(@(x) x(1),rawData)
  C2=   str2double(cellfun(@(x) x(2:5),rawData,'UniformOutput',false))
  C3=   str2double(cellfun(@(x) x(6:end),rawData,'UniformOutput',false))


Damit sparst du dir die Schleife und das sollte dann schneller gehen. Wie viel Zeit brauchst du denn momentan für das Einlesen, das Umwandeln und das Schreiben der Daten?
Private Nachricht senden Benutzer-Profile anzeigen
 
Rupert

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2017, 08:04     Titel: Effizienzsteigern
  Antworten mit Zitat      
Vielen Dank für eure Antworten.

Hat mir sehr weitergeholfen!
 
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2017 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.