abc Matlab - elektronski priručnik
VII dio Dodaci /APPENDIX/ - 7.1. Programiranje u Matlabu 1

7.1.5. Stringovi

String je niz karaktera. Svaki karakter je interno predstavljen svojom ASCII vrijednošću.

Ovo je primjer stringa

str = 'I am learning MATLAB this semester.'

str =
I am learning MATLAB this semester.

Da bismo vidjeli njegovu ASCII reprezentaciju koristimo funkciju double

str1 = double(str)

str1 =
Columns 1 through 12
73    32    97    109   32    108   101   97    114   110   105
110
Columns 13 through 24
103   32    77    65    84    76    65    66    32    116   104
105
Columns 25 through 35
115   32    115   101   109   101   115   116   101   114   46

Moguće je konvertovati niz str1 u njegovu karaktersku formu pomoću funkcije char
str2 = char(str1)

str2 =
I am learning MATLAB this semester.
Primjena konverzije stringova je napr. prilikom kodiranja i dekodiranja poruka.

Za poređenje dva stringa po jednakosti koristimo funkciju strcmp

iseq = strcmp(str, str2)

iseq =
1

Dva stringa mogu biti spojena konkatenacijom pomoću funkcije strcat

strcat(str,str2)

ans =
I am learning MATLAB this semester.I am learning MATLAB this semester.
Primijetimo da stringovi spojeni konkatenacijom nisu razdvojeni blanko razmakom.
Moguće je kreirati dvodimenzionalni niz stringova. Za ovu svrhu mora se koristiti ćelijski niz radije nego dvodimenzionalni niz. Ovo je zbog činjenice da numerički niz mora imati isti broj kolona u svakom redu.
Ovo je primjer ćelijskog niza

carr = {'first name'; 'last name'; 'hometown'}

carr =
    'first name'
    'last name'
    'hometown'

Primijetimo upotrebu vitičastih zagrada umjesto uglastih zagrada. Ćelijski nizovi će biti detaljnije objašnjeni u sljedećem odjeljku.

MATLAB ima dve funkcije za kategorizaciju karaktera: isletter i isspace. Primijenićemo obe funkcije na string str

Prva funkcija vraća 1 ako je karakter slovo i 0 inače, dok druga vraća 1 ako je karakter tzv. bijeli prostor (blanko, tab, ili novi red) i 0 inače.

Završićemo ovaj odjeljak sa dve važne funkcije koje su namijenjene za konverziju brojeva u stringove. Funkcije o kojima se radi su int2str i num2str. Funkcija int2str zaokružuje svoj argument (matricu) na cijeli broj i konvertuje rezultat u string matricu.

Neka je

A = randn(3)
A =
    -0.4326      0.2877      1.1892
    -1.6656     -1.1465     -0.0376
    0.1253      1.1909      0.3273
Tada je

B = int2str(A)

B =
    0   0   1
    -2  -1   0
    0   1   0

Funkcija num2str uzima niz i konvertuje ga u nizovni string. Primijenivši ovu funkciju na ranije definisanu matricu A, dobijamo

C = num2str(A)

C =
    -0.43256     0.28768     1.1892
    -1.6656     -1.1465     -0.037633
    0.12533     1.1909      0.32729

Funkcija o kojoj je riječ uzima drugi opcioni argument – broj decimalnih cifara. Ova njena osobina dozvoljava korisniku da prikaže cifre koje su krajnje desno od decimalne tačke. Koristeći matricu A ponovo, dobijamo

D = num2str(A, 18)

D =
    -0.43256481152822068    0.28767642035854885      1.1891642016521031
    -1.665584378238097    -1.1464713506814637  -0.037633276593317645
    0.12533230647483068     1.1909154656429988    0.32729236140865414

Za poređenje, mijenjajući format u long, dobijamo

format long

A

A =
-0.43256481152822       0.28767642035855         1.18916420165210
-1.66558437823810      -1.14647135068146             -0.03763327659332
0.12533230647483       1.19091546564300        0.32729236140865

format short

Funkcija num2str se često koristi za labeliranje crteža sa title, xlabel, ylabel, i text komandama.

Relacioni i logički operatori    <    Index    >    Ćelijski nizovi