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

String verändern. löschen bis auf ...

 

Matlab-noob

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.02.2016, 11:30     Titel: String verändern. löschen bis auf ...
  Antworten mit Zitat      
Der String hat immer eine verschiedene Anzahl von ------------ und könnte z.B. so aussehen

2016--------------2-------------25-------------11-------------26-------43-10099

ich möchte gerne, das der String später mal so aussieht

2016-2-25--11-26-43-10099

Aber ich schaffe es halt nicht so ganz. was gibt es noch an befehlen, die ich probieren könnte denn

Code:
meta=strrep(meta,'-','')


bringt mir ja leider

201622511264310099


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.02.2016, 11:34     Titel: Re: String verändern. löschen bis auf ...
  Antworten mit Zitat      
Hallo Matlab-noob,

Jetzt müssten wir noch wissen, wie die Ausgabe genau aufgebaut sein soll. Was das Beispiel repräsentativ? Gibt es in jeder Zeile 7 Zahlen, die von - getrennt sind, wobei der 3. ein doppeltes -- ist?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Matlab-noob

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.02.2016, 12:00     Titel:
  Antworten mit Zitat      
leider nein Jan.

der String der mir da zurückgeliefert wird ist datum und Uhrzeit und wird mir zusammen mit anderen sachen als metadata geliefert. Dieser zeitstempel soll dann als Dateiname später dienen nur sind da zu viele --------------- drin.

2016-2-25--11-26-43-10099
wäre in diesem beispiel

2016 jahr 2 monat 25 tag -- 11 stunde 26 minute 43 sekunde 10099 millisekunde
somit könnte an einem anderen tag das ganze auch so aussehen. dabei werden die stunden nicht mit am und pm sondern als 24h zeit ausgegeben also 0-24h

2016-11-3--6-0-52-56689
 
Matlab-noob

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.02.2016, 12:04     Titel:
  Antworten mit Zitat      
Jetzt hab ich verstanden was du meisnt Jan

ja es sind immer 7 Zahlen und die 3. und 4. Zahl sind immer mit -- getrennt alle anderen zahlen mit -
ja so soll die Ausgabe am ende immer aussehen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 26.02.2016, 12:18     Titel: Re: String verändern. löschen bis auf ...
  Antworten mit Zitat      
Hallo Matlab-noob,
Code:
String = '2016--------------2-------------25-------------11-------------26-------43-10099';
String2 = strrep(String, '-', ' ');
Num = sscanf(String2, '%d');
Result = sprintf('%d-%d-%d--%d-%d-%d-%d', Num);

Grundsätzlich ist eine Umwandlung von Strings in Zahlen und wieder zurück in Strings ein Umweg, den man für effiziente Programme besser vermeidet. Aber hier wird der Code schön kompakt dadurch.

Eine Möglichkeit ohne Konvertierungen:
http://www.mathworks.de/matlabcentr.....eexchange/41813-runlength
Code:
S = '2016--------------2-------------25-------------11-------------26-------43-10099';
[B, N, Index] = RunLength(S);
N(B == '-') = [1,1,2,1,1,1];
Result = RunLength(B, N);

Falls es um Millionen Strings geht, könnte die spürbar schneller sein.

Gruß, Jan
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.