abc Matlab - elektronski priručnik
II dio Osnove Matlaba kao jezika - 2.5. Tipovi nizova

2.5.3. Karakteri i tekst

Unesimo tekst u Matlab koristeći jednostruke navodnike. Na primjer,
s = 'Hello'
Rezultat nije ista vrsta numeričke matrice ili niza sa kojima smo se dosad susretali. To je 1-sa-5 niz karaktera.
Interno, karakteri su spremljeni kao brojevi, ali ne u formatu pokretnog zareza. Naredba

a = double(s)

konvertuje niz karaktera u numeričku matricu koja sadrži reprezentacije u pokretnom zarezu ASCII kodova za svaki karakter. Rezultat je

a =
72        101      108      108      111

Naredba

s = char(a)

invertuje konverziju.

Konvertovanje brojeva u karaktere čini mogućim istraživanje različitih fontova raspoloživih na našem računaru. Printabilni karakteri u osnovnom ASCII skupu karaktera su predstavljeni cijelim brojevima 32:127. (Cijeli brojevi manji od 32 predstavljaju neprintabilne kontrolne karaktere.) Ovi cijeli brojevi su aranžirani u odgovarajući 6-sa-16 niz sa

F = reshape(32:127,16,6)';

Printabilni karakteri u proširenom ASCII skupu karaktera su predstavljeni sa F+128. Kada se ti cijeli brojevi interpretiraju kao karakteri, rezultat zavisi od fonta koji je trenutno u upotrebi. Otkucajmo naredbe

char(F)
char(F+128)

a onda mijenjajmo font koji se koristi u komandnom prozoru. Da promijenimo font, na Home tabu, u Environment sekciji, kliknemo Preferences > Fonts. Ako uključimo tabove u linije koda, koristimo font fiksne širine, kao što je Monospaced, da poravnamo pozicije tabova na različitim linijama.

Konkatenacija uglastim zagradama spaja varijable teksta zajedno u veće stringove. Naredba

h = [s, ' world']

spaja stringove horizontalno i proizvodi

h =

    Hello world

Naredba

v = [s; 'world']

spaja stringove vertikalno i proizvodi
v =
Hello
world

Primijetimo da razmak mora biti ubačen prije 'w' u h i da obe riječi u v moraju imati istu dužinu. Oba rezultujuća niza su nizovi karaktera; h je 1-sa-11 a v je 2-sa-5.

Za manipulisanje nekim tekstom koji sadrži linije različitih dužina, imamo dva izbora — “popunjeni“ niz karaktera ili ćelijski niz stringova. Kada kreiramo niz karaktera, moramo učiniti da svaki red niza bude iste dužine. (“Popuniti“ krajeve kraćih redova razmacima.) Funkcija char vrši to popunjavanje. Na primjer,

S = char('A','rolling','stone','gathers','momentum.')

proizvodi 5-sa-9 niz karaktera:

S =
A
rolling
stone
gathers
momentum.

Alternativno, možemo spremiti tekst u ćelijski niz. Na primjer,

C = {'A';'rolling';'stone';'gathers';'momentum.'}

kreira 5-sa-1 ćelijski niz koji ne zahtijeva popunjavanje zato što svaki red niza može imati različitu dužinu:

C =
'A'
'rolling'
'stone'
'gathers'
'momentum.'

Moguće je konvertovati popunjeni niz karaktera u ćelijski niz stringova sa

C = cellstr(S)

i invertovati proces sa

S = char(C)

Ćelijski nizovi    <    Index    >    Strukture