"Вычисления, визуализация и программирование в среде 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 |
|
|