"Вычисления, визуализация и программирование в среде MATLAB 5.x" - читать интересную книгу автора (Мартынов Н. Н., Иванов А. П.)

S =
13
╘єэъЎш■ int2str ўрёЄю шёяюы№чє■Є фы  ляЁшъыхштрэш ╗ эюьхЁр ъ яюёЄю ээющ ўрёЄш шьхэш:
KernelName = 'SomeName'; Number = 567; name = [ KernelName, int2str(Number) ];
уфх яюёых ъюэърЄхэрЎшш ЄхъёЄютр  ёЄЁюър name яЁшьхЄ чэрўхэшх ' SomeName567'.
┬ёЄЁюхээ√х ЇєэъЎшш фы  юсЁрсюЄъш ёЄЁюъ
┬√°х ь√ єчэрыш, ўЄю ёшёЄхьр MATLAB фюяєёърхЄ юс√ўэ√х ьрЄхьрЄшўхёъшх т√ўшёыхэш  ё яхЁхьхээ√ьш Єшяр char. ╬фэръю сюы№°ющ ръЄєры№эюёЄш т ¤Єюь эхЄ, яюёъюы№ъє ёь√ёы Єшяр фрээ√ї char ёюёЄюшЄ тёх-Єръш т фЁєуюь. ▌ЄюЄ Єшя фрээ√ї ёяхЎшры№эю яЁхфэрчэрўхэ фы  юсЁрсюЄъш ЇЁруьхэЄют ЄхъёЄр эр хёЄхёЄтхээюь  ч√ъх.
╤шёЄхьр MATLAB ЁрёяюырурхЄ яюыэ√ь эрсюЁюь ЇєэъЎшщ фы  лъырёёшўхёъющ╗ юсЁрсюЄъш ЄхъёЄют. ╩ Єръшь ЇєэъЎш ь юЄэюё Єё  ЇєэъЎшш blanks, deblank, findstr, isletter, isspace, lower, repmat, strcmp, strcmpi, strmatch, strncmp,strncmpi, strrep, strtok, upper.
╘єэъЎш  repmat  ты хЄё  эх ёяхЎшрышчшЁютрээющ ёЄЁюъютющ ЇєэъЎшхщ, р ЇєэъЎшхщ юс∙хую эрчэрўхэш , яючтюы ■∙хщ ЁрчьэюцшЄ№ яЁюшчтюы№эє■ ьрЄЁшЎє т уюЁшчюэЄры№эюь ш тхЁЄшъры№эюь эряЁртыхэш ї чрфрээюх ўшёыю Ёрч. ┬ ўрёЄэюёЄш, фы  ёЄЁюъ ¤Єр ЇєэъЎш  ЁрчьэюцрхЄ ЄхъёЄют√х юЄЁхчъш. ═ряЁшьхЁ, ¤Єр ЇєэъЎш  яючтюы хЄ ёючфрЄ№ ёЄЁюъє шч чрфрээюую ўшёыр ёшьтюыют:
s = 'р'; я = 1; m = 11; str = repmat( 'a', n, m );
str =
aaaaaaaaaaa
┼ёыш ЄЁхсєхЄё  ёючфрЄ№ ёЄЁюъє шч чрфрээюую ўшёыр яЁюсхыют, Єю яЁю∙х яЁшьхэшЄ№ ЇєэъЎш■ blanks. ═ряЁшьхЁ, т√чют ¤Єющ ЇєэъЎшш
str = blanks ( 27 );
ёючфрхЄ ёЄЁюъє шч 27 яЁюсхыют. ┬ ётю■ юўхЁхф№, єфрыхэшхь яЁюсхыют чрэшьрхЄё  ЇєэъЎш  deblank, ъюЄюЁр  єфры хЄ шч ёЄЁюъш тёх ъюэЎхт√х яЁюсхы√.
╤ яюью∙№■ ЇєэъЎшщ isletter ш isspace ьюцэю яЁюрэрышчшЁютрЄ№ тїюф ∙шх т ёЄЁюъє ёшьтюы√. ╘єэъЎш  isspace яЁшэшьрхЄ т ърўхёЄтх рЁуєьхэЄр ёЄЁюъє, р тючтЁр∙рхЄ ўшёыютющ ьрёёшт шч эєыхщ ш хфшэшЎ, яЁшўхь хфшэшЎ√ ёЄю Є эр Єхї ьхёЄрї, эр ъюЄюЁ√ї т шёїюфэющ ёЄЁюъх ёЄю Є Єръ эрч√трхь√х яЁюсхы№э√х ёшьтюы√. ╥ръ эрч√тр■Єё  яЁюсхы, р Єръцх єяЁрты ■∙шх ёшьтюы√ (шї
MATLAB 5.x. ┬√ўшёыхэш , тшчєрышчрЎш , яЁюуЁрььшЁютрэшх 95
ASCII-ъюф√ ьхэ№°х 32 ш юэш эх шьх■Є тшчєры№э√ї юсЁрчют) лЄрсєы Ўш ╗, ляхЁхтюф ёЄЁюъш╗, лтючтЁрЄ ърЁхЄъш╗ ш Є. я.
╘єэъЎш  isletter Єръцх тючтЁр∙рхЄ ўшёыютющ ьрёёшт шч эєыхщ ш хфшэшЎ, эю чфхё№ хфшэшЎ√ ёЄю Є эр Єхї ьхёЄрї, эр ъюЄюЁ√ї т шёїюфэющ ёЄЁюъх ёЄю Є сєът√. ═ряЁшьхЁ,
str = 'abcl23 #$% 567qwerty'; x = isletter ( str );
x =
11100000000000111111
╘єэъЎш  isletter ыхуъю юяЁхфхышыр, ўЄю т 20-ёшьтюы№эющ ёЄЁюъх сєът тёхую фхт Є№, яЁшўхь ёЄю Є юэш эр яхЁт√ї ЄЁхї ш эр яюёыхфэшї °хёЄш яючшЎш ї (шьхээю эр ¤Єшї яючшЎш ї т ўшёыютюь ьрёёштх ї ёЄю Є хфшэшЎ√).
╥хяхЁ№ т√ ёэшь, ъръютр ёшЄєрЎш  ё сєътрьш ъшЁшыышЎ√. ┬ ёяЁртюўэющ ёшёЄхьх яръхЄр MATLAB ёърчрэю, ўЄю яюффхЁцштрхЄё  Єюы№ъю ъюфшЁютър Windows Latin-1, ёююЄтхЄёЄтє■∙р  чрярфэюхтЁюяхщёъшь  ч√ърь. ┼ёыш цх эх тхЁшЄ№ эряшёрээюьє, р яю¤ъёяхЁшьхэЄшЁютрЄ№, Єю ьюцэю, эряЁшьхЁ, яюыєўшЄ№ ёыхфє■∙шщ Ёхчєы№ЄрЄ:
str = 'qwertyuuyKeH'; x = isletter( str );
ї =
111111111111
ючэрўр■∙шщ, ўЄю Ёєёёъшх сєът√ тёх цх Ёрёяючэр■Єё . ╬фэръю эх эрфю ЄюЁюяшЄ№ё . ┬юЄ трь х∙х юфшэ ¤ъёяхЁшьхэЄры№э√щ яЁшьхЁ:
str = 'qwertyeE'; x = isletter( str ); ї = 1111110 0
ш ь√ тшфшь, ўЄю Ёєёёъшх сєът√ х ш ┼ тёх цх эх Ёрёяючэр■Єё . ╧ЁшїюфшЄё  яютхЁшЄ№ ёяЁртюўэющ фюъєьхэЄрЎшш ъ яръхЄє MATLAB. ╥ръшь юсЁрчюь, хёыш яЁшёєЄёЄтє■Є сєът√ ъшЁшыышЎ√, Єю шї яючшЎшюэшЁютрэшх эєцэю сєфхЄ т√ ты Є№ ёрьюёЄю Єхы№эю. ┬ёЄЁюхээр  ЇєэъЎш  isletter ёшёЄхь√ MATLAB эх яюьюцхЄ эрь т ¤Єюь т яюыэюь юс·хьх (т√ярфєЄ сєът√ х ш ┼), ш яЁшфхЄё  яшёрЄ№ ётю■ ёюсёЄтхээє■ ЇєэъЎш■. ╥рър  ЇєэъЎш  сєфхЄ эрьш яючцх эряшёрэр тю 2-щ ўрёЄш яюёюсш  т уы. 6, яюёт ∙хээющ яЁюуЁрььшЁютрэш■ Єръ эрч√трхь√ї ╠-ЇєэъЎшщ.
╘єэъЎшш lower ш upper юўхэ№ яЁюёЄ√. ╧хЁтр  шч эшї чрьхэ хЄ тёх яЁюяшёэ√х ёшьтюы√ (ёшьтюы√ тхЁїэхую ЁхушёЄЁр) эр ёшьтюы√ эшцэхую ЁхушёЄЁр. ═ряЁшьхЁ,
str = 'Hello Matlab'; strl = lower( str ); strl = hello matlab
t ╘єэъЎш  цх upper ЁрсюЄрхЄ яЁюЄштюяюыюцэ√ь юсЁрчюь: тёх ёшьтюы√ эшцэхую ЁхушёЄЁр (ёЄЁюўэ√х) юэр чрьхэ хЄ эр ёшьтюы√ тхЁїэхую ЁхушёЄЁр.
96 ├ыртр 3. ╠рёёшт√ ёшьтюыют, ёЄЁєъЄєЁ,  ўххъ. ╘рщыют√х юяхЁрЎшш
╘єэъЎшш f indstr, strmatch ш strtok эрїюф Є шыш т√фхы ■Є т ёЄЁюърї яюфёЄЁюъш, юфэръю фхЄрыш шї ЁрсюЄ√ ёє∙хёЄтхээю юЄышўр■Єё . ═рўэхь ё ЇєэъЎшш findstr.
═ряЁшьхЁ, т ёыхфє■∙хь ЇЁруьхэЄх ЇєэъЎшхщ findstr ш∙хЄё  ьрёёшт яючшЎшщ тїюцфхэш  ёыютр 'Hello' т ЄхъёЄ, ёюфхЁцр∙шщё  т яхЁхьхээющ vStr:
innerStr = 'Hello';
vStr='Hello is the word. Hello is opposite to bye.';
positions = findstr( vStr, innerStr );
ш т Ёхчєы№ЄрЄх ьрёёшт positions яЁшэшьрхЄ ёыхфє■∙хх чэрўхэшх:
positions = 1 20
╥ръшь юсЁрчюь, ЇєэъЎш  findstr юсэрЁєцшыр фтр тїюцфхэш  яхЁхьхээющ innerStr т ЄхъёЄ Vstr. ╧хЁтюх тїюцфхэшх шьххЄ ьхёЄю эрўшэр  ё ёрьюую яхЁтюую ёшьтюыр; тЄюЁюх тїюцфхэшх шьххЄ ьхёЄю эр 20-ь ёшьтюых (тъы■ўр .яЁюсхы√, ЁрчєьххЄё ).
┼ёыш ЇєэъЎш  findstr эх эрїюфшЄ тїюцфхэшщ тююс∙х, Єю юэр тючтЁр∙рхЄ яєёЄющ ьрёёшт, ъюЄюЁ√щ эрфю яЁютхЁ Є№ ЇєэъЎшхщ isempty. ▌Єр ЇєэъЎш  тючтЁр∙рхЄ лшёЄшэє╗ (хфшэшЎє), хёыш ьрёёшт фхщёЄтшЄхы№эю яєёЄющ (эх ёюфхЁцшЄ эш юфэюую ¤ыхьхэЄр), ш тючтЁр∙рхЄ лыюц№╗ т яЁюЄштэюь ёыєўрх. ┼∙х ёыхфєхЄ яюфўхЁъэєЄ№, ўЄю ЇєэъЎш  findstr ЁрчышўрхЄ ЁхушёЄЁ ёшьтюыют.
╘єэъЎш  strmatch юёє∙хёЄты хЄ яюшёъ яюфёЄЁюъ т ёшьтюы№э√ї ьрЄЁшЎрї, ёюфхЁцр∙шї эхёъюы№ъю ЄхъёЄют√ї ёЄЁюъ ёЁрчє. ▌Єр ЇєэъЎш  ш∙хЄ ш тючтЁр∙рхЄ эюьхЁр ёЄЁюъ ьрЄЁшЎ√, т ъюЄюЁ√ї ёюфхЁцшьюх эрўшэрхЄё  ё чрфрээюую эрсюЁр ёшьтюыют. ═ряЁшьхЁ, т ёыхфє■∙хь ЇЁруьхэЄх:
A=['qwert'; 'asdfg'; 'zxcvb']; x=strmatch('as',A); x = 2
ЇєэъЎш  strmatch эрїюфшЄ, ўЄю тЄюЁр  ёЄЁюър шёїюфэющ ьрЄЁшЎ√ └ эрўшэрхЄё  ё 'as'. ┼ёыш ЄЁхсєхЄё  т√ тшЄ№ эх эрўры№эюх (ўрёЄшўэюх) ёютярфхэшх, р Єюўэюх ёютярфхэшх ёЄЁюъш ьрЄЁшЎ√ ё чрфрээющ яюфёЄЁюъющ, Єю Єюуфр т ърўхёЄтх ЄЁхЄ№хую рЁуєьхэЄр ЇєэъЎшш strmatch эєцэю яхЁхфрЄ№ ёЄЁюъє ' exact':
A=['qwert';'asdfg';'zxcvb']; x=strmatch('as',A,'exact'); x = []
╥ръ ъръ т фрээюь яЁшьхЁх эхЄ Єръюую яюыэюую ёютярфхэш , Єю ЇєэъЎш  strmatch тючтЁр∙рхЄ яєёЄющ ўшёыютющ ьрёёшт (юсючэрўрхЄё  ъръ [ ]).
╘єэъЎш  strtok яючтюы хЄ т√ ты Є№ т шёїюфэющ ёЄЁюъх яЁюшчтюы№э√х ыхъёхь√, эряЁшьхЁ ёыютр. ╬эр тючтЁр∙рхЄ эрўры№эє■ ўрёЄ№ ёЄЁюъш, Ёрёяюыюцхээє■
MATLAB 5.x. ┬√ўшёыхэш , тшчєрышчрЎш , яЁюуЁрььшЁютрэшх 97