JanKoWeb: Odborný SW - Matlab - práce s řetězci

Matlab - práce s řetězci

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'.

Sloučení řetězců

strcat( string, string ) - sloučí dva řetězce či pole znaků.

str = 'kuk';
strcat(str,' je muj rezezec')
%vypise: kuk je muj retezec

Pole řetězců

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
pole = ['pes' ; 'dva psi']
, 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.

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!

Porovnávání a hledání řetězců

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é).

Rubrika Odborný SW | Tagy Matlab, Matematika | Čt 22.10.2009 | 12501x

Související články:

MATLAB: úprava popisku osy x (vydáno Po 13.03.2017, 12:16)
MATLAB: dávková úprava figure (vydáno Po 13.03.2017, 12:12)
MATLAB: divné chování keeplimits u dateaxis (vydáno Po 20.02.2017, 11:52)
MATLAB: otevření složky z MATLABu (vydáno Ne 05.07.2015, 10:23)
MATLAB: error attempt to add "" to a static workspace (vydáno Pá 03.07.2015, 10:23)
MATLAB: spuštění m-file na Linuxu přímo v MATLABu (vydáno So 27.06.2015, 10:23)
MATLAB help generator - File Exchange - MATLAB Central (vydáno Čt 11.06.2015, 10:23)
Matlab: zjištění závislostí a toolboxů dané funkce (vydáno Ne 26.10.2014, 16:13)
Matlab java.lang.OutOfMemoryError  (vydáno So 14.06.2014, 11:31)
Matlab: na Linuxu nejde změnit velikost fontu (vydáno Pá 27.12.2013, 18:55)
Matlab: generátor nápovědy pro funkce (vydáno Čt 31.10.2013, 16:51)
Matlab: tipy a triky pro práci se strukturami (vydáno Út 13.08.2013, 13:53)
Matlab: práce s error, warning a try catch (vydáno Po 05.08.2013, 13:48)
Matlab: prohlížeč obrázků (vydáno Čt 01.08.2013, 22:23)
Matlab: skrytí warning (vydáno Čt 18.07.2013, 14:59)
MATLAB: vícenásobná substituce proměnné v matici (vydáno Út 12.03.2013, 12:46)
Matlab a LaTeX: rychlý export matice do LaTeXu (vydáno St 24.10.2012, 10:12)
Matlab: praktické tipy pro práci s figurami (grafy) (vydáno St 14.12.2011, 10:30)
Matlab: praktické rady pro ladění kódu aneb Debug mode (vydáno Ne 11.12.2011, 19:24)
Matlab: zkratky pro často se opakující příkazy přímo v toolbaru (vydáno Ne 20.11.2011, 18:32)
Matlab: převod výrazu do formátu LaTeXu (vydáno Út 17.05.2011, 23:12)
Matlab: Vigenerova šifra (vydáno Pá 15.04.2011, 10:44)
Matlab: instalace na Linuxu UBUNTU (vydáno Pá 25.02.2011, 18:03)
Matlab: úpravy výrazů (vydáno St 23.02.2011, 18:03)
Matlab: export grafu do pdf (vydáno So 05.02.2011, 23:58)
Matlab: TODO, FIXME a cell mode (vydáno Pá 10.12.2010, 17:36)
Matlab: defaultní nastavení grafu (vydáno Út 16.11.2010, 12:31)
Matlab: přehled exportů grafického výstupu (vydáno Pá 09.07.2010, 16:37)
Matlab - funkce pro textový výstup (vydáno So 13.03.2010, 19:39)
Matlab - práce s řetězci (vydáno Čt 22.10.2009, 17:03) - právě čtete

Náhodné články

Tento web jsem zakládal na střední, v roce 2008. Je zde hlavně archiv mé tvorby.

Aktuální věci publikuji kvůli úspoře času na Twitter.

Honza

"Naděje je stav ducha, který dává smysl našemu životu."

V. Havel