"Nezbytným krokem k tomu, abyste od života získali věci, po kterých toužíte, je rozhodnout se, co vlastně chcete."
Pojďme se dnes podívat na práci s řetězci v programu MATLAB...
Řetězce se v Matlabu označují apostrofy - 'toto je retezec'.
strcat( string, string ) - sloučí dva řetězce či pole znaků.
str = 'kuk'; strcat(str,' je muj rezezec') %vypise: kuk je muj retezec
Při práci s řetězci v Matlabu může člověk neznalý dost tvrdě narazit. Funguje třeba
pole = ['pes' , 'dva psi'], tj. dvousloupcové pole (řetězce oddělené čárkou nebo mezerou), ale už nikoli
, tj. dvouřádkové pole (řetězce oddělené středníkem), protože řetězce mají různou délku, což vyvolá kočičí chybu.pole = ['pes' ; 'dva psi']
Možným řešením je následující kód:
% pouziti funkce strvcat %
pole = strvcat( 'pes' , 'dva psi' )
% vypise:
pole =
pes
dva psi
pole (2)
% vypise:
dva psi
% pouziti cell array %
pole = { 'pes' 'dva psi' }
% vypise:
'pes' 'dva psi'
pole (2)
% vypise:
'dva psi'
strvcat() - parametry jsou řetězce, oddělené čárkou. Písmeno "v" v názvu funkce značí, že se jedná o spojení do "vertikálního" pole. Existuje ještě funkce strcat(), který spokuje do horizonálního pole (tedy jeden dlouhý řádek).
cell array X = {'str' 'str'} - řetězce mohou být odděleny čárkou nebo mezerou, celé pole je ohraničeno složenými závorkami. Pro porovnávání s řetězci je nutné položku pole nejdřív převést na pole charu. char( X(2) ). Pozn. přetypování se nepíše jako v Céčku do závorky před proměnnou, ale proměnná se píše jako parametr přetypovávací funkce!
strcmp( string, string ) - vrátí true, pokud se řetězce rovnají.
findstr( string , string ) - vrátí pole čísel, které představují počáteční index výskytu kratšího řetězce v delším (lze kontrolovat např. funkcí isempty(), která vrátí true, pokud je pole prázdné).
.