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 | 12613x

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

"To, co druzí dělají, může být podnětem našich pocitů, nikoli však jejich příčinou."

M. Rosenberg