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

Zeichen vertauschen innerhalb eines Strings

 

jens

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2008, 09:19     Titel: Zeichen vertauschen innerhalb eines Strings
  Antworten mit Zitat      
Ich habe folgendes Problem. Und zwar möchte ich von dem folgenden String: '01/08/2008 11:56:09', die ersten beiden Zeichen "01" mit dem vierten und fünften Zeichen ""08" vertauschen. Gibt es in Matlab dafür eine FUnktion?


keloid
Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 26.08.2008, 09:34     Titel:
  Antworten mit Zitat      
Wenn es immer diese Zeichen sind, könntest Du das so lösen:
Code:
string = '01/08/2008 11:56:09'
temp = string;
temp(1:2) = string(4:5);
temp(4:5) = string(1:2);
string = temp
clear temp

Ist sicherlich nicht die schönste Methode, aber die am einfachsten zu verstehende, denk ich ;)
Elemente von Strings können wie Elemente von Matrizen über ihren Index angesprochen werden. temp ist eine Art Zwischenablage für den String, die dann bearbeitet wird, da das direkte Überschreiben des Strings sonst mit dieser Methode nicht funktioniert.
Private Nachricht senden Benutzer-Profile anzeigen
 
jens

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2008, 09:45     Titel: Zeichen vertauschen innerhalb eines Strings
  Antworten mit Zitat      
Vielen Dank für die schnelle Hilfe. Dein Beispiel funktioniert so korrekt.
Leider funktioniert dies bei mir nicht.

Bei mir erscheint diese Fehlermeldung: Index exceeds matrix dimensions.

So wie es aussieht ist es kein String sondern die Informationen stecken jeweils in einer Zelle drin. Es sieht daher nur so aus, als ob es ein String wäre. Es sthet z.B.: nicht so drin 01/08/2008 11:56:09 sondern so
'01/08/2008 11:56:09'.
 
keloid
Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 26.08.2008, 09:50     Titel:
  Antworten mit Zitat      
Welchen Datentyp hat denn der Wert?
Den Datentyp kannst Du bekommen durch
Code:

Dabei ist "wert" eben der Variablennamen des vermeintlichen Strings.
Private Nachricht senden Benutzer-Profile anzeigen
 
jens

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2008, 09:53     Titel:
  Antworten mit Zitat      
In type steht bei mir "cell" drin. Ok was kann ich weiter tun?
 
jens

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2008, 09:58     Titel:
  Antworten mit Zitat      
Wie kann man in Matlab den Inhalt einer Zelle in einen String konvertiern?
Ich hab da keine Ahanung wie ich dies tun kann.
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 26.08.2008, 10:01     Titel:
  Antworten mit Zitat      
Hallo Jens,

da es ja vermutlich um ein Datum geht, ist auch Folgendes eine Möglichkeit:

Code:
[Y, M, D, H, MN, S] = datevec(str,'mm/dd/yyyy HH:MM:SS');
str_neu{1} = datestr([Y, M, D, H, MN, S],'dd/mm/yyyy HH:MM:SS')


Das ist zwar eventuell eine "etwas schwieriger zu verstehende" Möglichkeit, funktioniert dafür auch mit Strings in cells. str wäre also Deine Variable, str_neu ist wieder in String in einer cell. Wenn das Ergebnis lieber ein String sein soll, muss die zweite Zeile lauten:

Code:
str_neu = datestr([Y, M, D, H, MN, S],'dd/mm/yyyy HH:MM:SS')


Herzliche Grüße
Bijick

Edit: Das Umwandeln geht mit
Code:

_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.