Mo Logo [Home] [Lexikon] [Aufgaben] [Tests] [Kurse] [Begleitmaterial] [Hinweise] [Mitwirkende] [Publikationen]

Mathematik-Online-Kurs: MATLAB - Weitere Datentypen

Zeichenketten


[vorangehende Seite] [nachfolgende Seite] [Gesamtverzeichnis][Seitenübersicht]

Zeichenketten (Strings) werden in MATLAB in Form von Matrizen gespeichert. Jedes Matrixelement repräsentiert dabei einen Index für eine Unicode-Zeichentabelle. Der Indexbereich liegt zwischen 0 und 65535, und die ersten 127 Zeichen der Zeichentabelle enthalten den ASCII-Zeichensatz.

Zeichenketten können in MATLAB mit Hilfe der einfachen Anführungszeichen ' ' angegeben werden. Soll die Zeichenkette selbst das einfache Anführungszeichen ' enthalten, so ist dieses in der Form '' anzugeben.

Beispiel für die Definition eine Zeichenkette:

  >> S='Hallo Welt'
  S =
  Hallo Welt

  >> whos S
    Name      Size                    Bytes  Class
    S         1x10                       20  char array
  Grand total is 10 elements using 20 bytes

Die folgende Tabelle gibt eine Auswahl nützlicher Funktionen zur Manipulation von Zeichenketten an:

 Allgemein
   char, double Umwandlung zwischen Zeichen- und Indexdarstellung
   num2str, str2num Umwandlung von Zahlen in String- bzw. Double-Darstellung
   ischar, isspace Test auf Zeichen bzw. white spaces
   blanks, deblank Erzeugen bzw. Löschen von Leerzeichen
   sprintf, sscanf Formatiertes Ausgeben bzw. Einlesen
 Operationen
   findstr, strrep Suchen/Ersetzen von Zeichenketten
   regexp, regexprep Suchen/Ersetzen mit regulären Ausdrücken
   strcat, strvcat Verkettung von Strings
   strcmp, findstr Vergleichen und Suchen von (Teil-)Strings
   upper, lower Umwandlung Groß-/Kleinschreibung
Eine Übersicht der verfügbaren Funktionen für Zeichenketten gibt der Befehl
help matlab/strfun.
(Autoren: Hörner/Wipper)

Erzeugen und Umwandeln von Zeichenketten:
  >> A='Hallo'; B='Welt'; C=[A ' ' B]
  C =
  Hallo Welt

  >> double(C)
  ans =
      72   97  108  108  111   32   87  101  108  116

  >> ascii=char(reshape(32:127,48,2)')
  ascii =
   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO
  PQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

Operationen für Strings:

  >> D=strvcat(A,B)      >> upper(D)     >> lower(D)
  D =                    ans =           ans =      
  Hallo                  HALLO           hallo      
  Welt                   WELT            welt       

  >> findstr(C,'l')      >> strrep(C,'Welt','Leser!') 
  ans =                  ans =                       
       3     4     9     Hallo Leser!
Da Strings in Form von Indexmatrizen gespeichert werden, müssen auch hier die Anzahl der Zeichen in allen Zeilen übereinstimmen. Bei Verwendung der Funktion strvcat zur vertikalen Verknüpfung von Zeichenketten werden kürzere Zeilen automatisch mit Leerzeichen aufgefüllt.
(Autoren: Hörner/Wipper)

[vorangehende Seite] [nachfolgende Seite] [Gesamtverzeichnis][Seitenübersicht]

  automatisch erstellt am 5.2.2008