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

╬с· ёэшЄ№ ЁрсюЄє ¤Єющ ЇєэъЎшш ьюцэю, Єюы№ъю шёїюф  шч ёяюёюср, ъръшь ёшёЄхьр MATLAB їЁрэшЄ ¤ыхьхэЄ√ ьрёёштют т ярь Єш ъюья№■ЄхЁр. ╬эр їЁрэшЄ шї т эхяЁхЁ√тэющ юсырёЄш ярь Єш єяюЁ фюўхээю яю ёЄюысЎрь: ёэрўрыр Ёрёяюырур■Єё  ¤ыхьхэЄ√ яхЁтюую ёЄюысЎр, тёыхф чр эшьш Ёрёяюыюцхэ√ ¤ыхьхэЄ√ тЄюЁюую ёЄюысЎр ш Є. ф. ╧юьшью ёюсёЄтхээю фрээ√ї (¤ыхьхэЄют ьрёёштр) т ярь Єш ъюья№■ЄхЁр їЁрэшЄё  Єръцх єяЁрты ■∙р  шэЇюЁьрЎш : Єшя ьрёёштр (эряЁшьхЁ, double), ЁрчьхЁэюёЄ№ ш ЁрчьхЁ√ ьрёёштр ш фЁєур  ёыєцхсэр  шэЇюЁьрЎш . ▌Єющ шэЇюЁьрЎшш фюёЄрЄюўэю фы  юяЁхфхыхэш  уЁрэшЎ ёЄюысЎют. ╬Єё■фр ёыхфєхЄ, ўЄю фы  яхЁхЇюЁьшЁютрэш  ьрЄЁшЎ√ ЇєэъЎшхщ reshape фюёЄрЄюўэю шчьхэшЄ№ Єюы№ъю ёыєцхсэє■ шэЇюЁьрЎш■ ш эх ЄЁюурЄ№ ёюсёЄтхээю фрээ√х.
╧юьхэ Є№ ьхёЄрьш ёЄЁюъш ьрЄЁшЎ√ ё хх ёЄюысЎрьш ьюцэю юяхЁрЎшхщ ЄЁрэёяюэшЁютрэш , ъюЄюЁр  юсючэрўрхЄё  чэръюь ' (ряюёЄЁюЇ). ═ряЁшьхЁ,
└ =[ 1 1 1; 2 2 2; 3 3 3]; ┬ = └'
MATLAB 5.x. ┬√ўшёыхэш , тшчєрышчрЎш , яЁюуЁрььшЁютрэшх 29
┬ =
1 2 3
1 2 3
12 3
─ы  ътрфЁрЄэ√ї ьрЄЁшЎ (ўшёыю ёЄЁюъ Ёртэю ўшёыє ёЄюысЎют) ¤Єр юяхЁрЎш  шьххЄ эруы фэє■ ухюьхЄЁшўхёъє■ шэЄхЁяЁхЄрЎш■: эр ётюшї ьхёЄрї юёЄр■Єё  ¤ыхьхэЄ√ уыртэющ фшруюэрыш ътрфЁрЄэющ ьрЄЁшЎ√, р юёЄры№э√х юЄЁрцр■Єё  ёшььхЄЁшўэю юЄэюёшЄхы№эю ¤Єющ фшруюэрыш.
┬хъЄюЁ-ёЄЁюъш юяхЁрЎшхщ ЄЁрэёяюэшЁютрэш  яЁхюсЁрчют√тр■Єё  т тхъЄюЁ-ёЄюысЎ√, ш эрюсюЁюЄ:
v = [ 1; 2; 3]; u = v' ; ш = 1 2 3
┬ ЁрёёьюЄЁхээюь яЁшьхЁх тхъЄюЁ-ёЄюысхЎ v юяхЁрЎшхщ ЄЁрэёяюэшЁютрэш  с√ы яЁхюсЁрчютрэ т тхъЄюЁ-ёЄЁюъє ш.
╠эюуюьхЁэ√х ўшёыют√х ьрёёшт√
╠эюуюьхЁэ√ьш эрч√тр■Єё  ьрёёшт√ ё ЁрчьхЁэюёЄ№■ сюы№°х фтєї. ─ы  шэфхъёрЎшш ¤ыхьхэЄют Єръшї ьрёёштют ЄЁхсєхЄё  ЄЁш шыш сюыхх шэфхъёр, єърч√тр■∙шх эр яюыюцхэшх т√сшЁрхьюую ¤ыхьхэЄр тфюы№ эхёъюы№ъшї эряЁртыхэшщ єяюЁ фюўхэш .
─рфшь эруы фэє■ шыы■ёЄЁрЎш■ ьэюуюьхЁэ√ї ьрёёштют эр яЁшьхЁх ьрёёштр ЄЁхї шчьхЁхэшщ (ЁрчьхЁэюёЄ№ Ёртэр ЄЁхь). ─юяєёЄшь, ўЄю хцхфэхтэю т Єхўхэшх ьхё Ўр яЁютюф Єё  шчьхЁхэш  юфэшї ш Єхї цх тхышўшэ, яЁшўхь чэрўхэш  ¤Єшї тхышўшэ чр юфшэ фхэ№ ётюф Єё  т яЁ ьюєуюы№эє■ ЄрсышЎє. ╥юуфр т ъюэЎх ьхё Ўр шьх■Єё  30 фтєьхЁэ√ї ЄрсышЎ. ╩ръ єяюЁ фюўшЄ№ тё■ ¤Єє ёютюъєяэюёЄ№ юя√Єэ√ї фрээ√ї? ─ы  ¤Єюую ьюцэю ЁрёяюыюцшЄ№ ¤Єш ьрЄЁшЎ√ тфюы№ эхъюЄюЁюую эряЁртыхэш  ш яЁюэєьхЁютрЄ№ шї. ▌Єю сєфхЄ єцх ЄЁхЄ№х эряЁртыхэшх єяюЁ фюўхэш  фрээ√ї, Єръ ъръ тфюы№ яхЁтюую эряЁртыхэш  (єёыютэю - тхЁЄшъры№эюую) єяюЁ фюўштр■Єё  ёЄЁюъш, тфюы№ тЄюЁюую (уюЁшчюэЄры№эюую) - ёЄюысЎ√. ┬ Ёхчєы№ЄрЄх ЄЁхЄшщ шэфхъё фы  фюёЄєяр ъ юЄфхы№эюьє ¤ыхьхэЄє фрээ√ї сєфхЄ Ёртхэ эюьхЁє ЄрсышЎ√ тфюы№ эряЁртыхэш  фэхщ ьхё Ўр. ╧юыєўшт°р ё  ёютюъєяэюёЄ№ єяюЁ фюўхээ√ї фрээ√ї шыы■ёЄЁшЁєхЄё  Ёшё. 1.16.
┼ёыш ёючфрЄ№ ЄЁхїьхЁэ√щ ьрёёшт └1, ёюфхЁцр∙шщ єяюЁ фюўхээ√х єърчрээ√ь юсЁрчюь фрээ√х, Єю ъ шэфштшфєры№эюьє фрээюьє ьюцэю юсЁр∙рЄ№ё  ё яюью∙№■ ЄЁхї шэфхъёют. ▌ыхьхэЄ └1 (1,2,2) эрїюфшЄё  т яхЁтющ ёЄЁюъх, тЄюЁюь ёЄюысЎх ш тю тЄюЁющ ьрЄЁшЎх. ╚ч Ёшёєэър тшфэю, ўЄю ¤ЄюЄ ¤ыхьхэЄ Ёртхэ 3.
30
├ыртр 1. ╫шёыют√х ьрёёшт√ т ёшёЄхьх MATLAB
3 4 3. 5 8 9.
2 5 1 .... 6
╠рЄЁшЎр шчьхЁхэшщ чр 30-щ фхэ№
╠рЄЁшЎр шчьхЁхэшщ чр 2-щ фхэ№
╠рЄЁшЎр шчьхЁхэшщ чр 1-щ фхэ№
╨шёєэюъ 1.1 6
╥хяхЁ№ шчєўшь ёяюёюс√ ёючфрэш  Єръшї ьрёёштют. ╧хЁт√щ ёяюёюс - ¤Єю яЁ ьюх яЁюяшё√трэшх тёхї хую ¤ыхьхэЄют:
└1 (1,1,1) =3; └1 (2,1,1)=5;... └1(1,2,1) =4; └1(2,2,1)=8;...
└1(1,1,2) =2; └1(2,1,2)=3;... └1(1,2,2) =3; └1(2,2,2)=1;...
└1 (1,1, 30)=7; └1(2,1,30)=4;... Al(l,2,30)=7; A1 (2, 2, 30) =4;...
╟фхё№ фы  ьэюуюъЁрЄэюую єтхышўхэш  ¤ЇЇхъЄштэюёЄш ЎхыхёююсЁрчэю яхЁт√ь яЁюяшёрЄ№ ёрь√щ яЁрт√щ эшцэшщ ¤ыхьхэЄ 30-щ ьрЄЁшЎ√, Єръ ъръ ёшёЄхьр MAT-LAB ёЁрчє яюыєўшЄ шэЇюЁьрЎш■ юс шёЄшээюь ЁрчьхЁх ёючфртрхьюую ЄЁхїьхЁэюую ьрёёштр.
─Ёєушь ёяюёюсюь єтхышўхэш  ¤ЇЇхъЄштэюёЄш (с√ёЄЁюфхщёЄтш ), ъръ ш т Ёрэхх ЁрёёьюЄЁхээ√ї ёыєўр ї тхъЄюЁют ш ьрЄЁшЎ,  ты хЄё  ёючфрэшх ьрёёштр эєцэюую ЁрчьхЁр т√чютюь ЇєэъЎшщ ones шыш zeros, ъюЄюЁ√х ЄхяхЁ№ фюыцэ√ яюыєўшЄ№ ЄЁш тїюфэ√ї рЁуєьхэЄр:
ones( M, N, L ) шыш zeros( M, N, L )
уфх L - ¤Єю ЁрчьхЁ ЄЁхїьхЁэюую ьрёёштр тфюы№ ЄЁхЄ№хую шчьхЁхэш . ╤ючфрээ√х єърчрээ√ьш ЇєэъЎш ьш ЄЁхїьхЁэ√х ьрёёшт√ ёюфхЁцрЄ т ърўхёЄтх ¤ыхьхэЄют ышсю хфшэшЎ√, ышсю эєыш. ─рыхх эєцэю юёє∙хёЄтшЄ№ яЁюяшё√трэшх шэфштшфєры№э√ї ¤ыхьхэЄют яЁртшы№э√ьш чэрўхэш ьш. ╧ЁюЎхёё сєфхЄ ¤ЇЇхъЄштэ√ь, Єръ ъръ эх яюЄЁхсєхЄё  яхЁхёЄЁющър ёЄЁєъЄєЁ√ ьрёёштр ё ърцф√ь эют√ь яЁшётрштрэшхь.
╥хяхЁ№ яЁхфяюыюцшь, ўЄю т ЄЁхїьхЁэюь ьрёёштх └2 ёюсЁрэ√ фрээ√х шчьхЁхэшщ чр фЁєующ ьхё Ў уюфр. ╩ръ ёюсЁрЄ№ тюхфшэю фрээ√х ЄЁхїьхЁэ√ї ьрёёштют └1 ш └2 ? ─юёЄрЄюўэю юўхтшфэ√ь Ёх°хэшхь сєфхЄ шї уЁєяяшЁютър тфюы№ ўхЄтхЁЄюую
MATLAB 5.x. ┬√ўшёыхэш , тшчєрышчрЎш , яЁюуЁрььшЁютрэшх 31
шчьхЁхэш  - шчьхЁхэш  тфюы№ ьхё Ўхт. ╥хїэшўхёъш Єрър  уЁєяяшЁютър  ты хЄё  ъюэърЄхэрЎшхщ. ╬фэръю яЁшьхэшЄ№ юяхЁрЎш■ ъюэърЄхэрЎшш, ъюЄюЁр  юсючэрўрхЄё  ътрфЁрЄэ√ьш ёъюсърьш, эхтючьюцэю, яюёъюы№ъє хх ЁрчфхышЄхыш т тшфх чря Єющ (яЁюсхыр) ш Єюўъш ё чря Єющ фюяєёър■Є ъюэърЄхэрЎш■ Єюы№ъю тфюы№ фтєї яхЁт√ї шчьхЁхэшщ. ═рь цх ёхщўрё эєцэю юёє∙хёЄтшЄ№ ъюэърЄхэрЎш■ ЄЁхїьхЁэ√ї ьрёёштют тфюы№ ўхЄтхЁЄюую шчьхЁхэш . ═р яюью∙№ яЁшїюфшЄ тЄюЁющ шч шчтхёЄэ√ї ёяюёюсют т√яюыэхэш  ъюэърЄхэрЎшш - ё яюью∙№■ ЇєэъЎшш cat. ▌Єр ЇєэъЎш  эх шьххЄ эшъръшї юуЁрэшўхэшщ ш т фрээюь ъюэъЁхЄэюь яЁшьхЁх т√ч√трхЄё  т ёыхфє■∙хь тшфх:
└ = cat( 4, Al, A2 )
уфх ўшёыю 4 чрфрхЄ эюьхЁ шчьхЁхэш , тфюы№ ъюЄюЁюую юёє∙хёЄты хЄё  ъюэърЄхэрЎш .
▀ёэю, ўЄю хёыш яюЄЁхсєхЄё  уЁєяяшЁютър фрээ√ї, яюыєўхээ√ї чр Ёрчэ√х уюф√, Єю ьюцэю юёє∙хёЄтшЄ№ ъюэърЄхэрЎш■ тфюы№ я Єюую эряЁртыхэш  ш яюыєўшЄё  я ЄшьхЁэ√щ ьрёёшт (ьрёёшт ЁрчьхЁэюёЄш 5).
╧Ёюшыы■ёЄЁшЁєхь тёх ёърчрээюх яЁю ьэюуюьхЁэ√х ьрёёшт√ эр ёыхфє■∙хь яЁюёЄюь яЁшьхЁх. ╤эрўрыр ёючфрфшь ЄЁхїьхЁэ√щ ьрёёшт р:
р = ones( 2, 3, 2 ); р( 1, 2, 2 ) = 7 р(:,:,1) = 1 1 1 1 1 1
р(:,:,2) = 1 7 1 1 1 1
ёюёЄю ∙шщ шч фтєї ьрЄЁшЎ ЁрчьхЁюь 2x3, ёуЁєяяшЁютрээ√ї т ЄЁхЄ№хь эряЁртыхэшш (шчьхЁхэшш). ╧Ёш яюърчх тїюф ∙шї т ¤ЄюЄ ЄЁхїьхЁэ√щ ьрёёшт ьрЄЁшЎ MATLAB шёяюы№чєхЄ фы  юсючэрўхэш  яхЁтющ шч эшї т√Ёрцхэшх р (:, :, 1), р фы  юсючэрўхэш  тЄюЁющ ьрЄЁшЎ√ - т√Ёрцхэшх р (:, :, 2). ╥ръшх юсючэрўхэш  эх ьюуєЄ с√Є№ ёхщўрё фю ъюэЎр яюэ Є√, Єръ ъръ ь√ х∙х эшўхую эх Ёрёёърч√трыш ю яЁшьхэхэшш юяхЁрЎшш фтюхЄюўшх (юяхЁрЎш  чрфрэш  фшрярчюэр чэрўхэшщ) яЁш шэфхъёрЎшш ьрёёштют. ╠√ яюфЁюсэю юёЄрэютшьё  эр ¤Єюь тюяЁюёх эшцх т фрээющ уыртх яюёюсш , р ёхщўрё Єюы№ъю ёърцхь, ўЄю юяхЁрЎш  : чрфрхЄ тхё№ тючьюцэ√щ фшрярчюэ шэфхъёют фы  фрээюую шчьхЁхэш .
─рыхх яю Єющ цх ёїхьх ёючфрфшь ЄЁхїьхЁэ√щ ьрёёшт ▄:
b = ones( 2, 3, 2 ); ▄( 1, 1, 1 ) = 8 ▄(:,:,1) = 8 1 1 111
32 ├ыртр 1. ╫шёыют√х ьрёёшт√ т ёшёЄхьх MATLAB
1 1 1 1 1 1
═ръюэхЎ, ёуЁєяяшЁєхь ¤Єш фтр ЄЁхїьхЁэ√ї ьрёёштр тфюы№ ўхЄтхЁЄюую шчьхЁхэш , р Ёхчєы№ЄрЄ яЁшётюшь ьрёёштє ё. ╥рър  юяхЁрЎш  уЁєяяшЁютъш тючьюцэр, яюёъюы№ъє ЄЁхїьхЁэ√х ьрёёшт√ р ш b шьх■Є юфшэръют√х ЁрчьхЁ√. ┬ яЁюЄштэюь ёыєўрх тючэшъыр с√ ю°шсър. ─ы  т√яюыэхэш  уЁєяяшЁютъш (ъюэърЄхэрЎшш) тюёяюы№чєхьё  ЇєэъЎшхщ cat:
ё = cat( 4, a, b );
─ы  яюыєўхээюую ьрёёштр ё т√чют ЇєэъЎшш ndims ( ё ) тхЁэхЄ ўшёыю 4, ўЄю ючэрўрхЄ, ўЄю ё  ты хЄё  ьрёёштюь ЁрчьхЁэюёЄш 4. ╨рчьхЁ ьрёёштр ё тфюы№ ърцфющ шч хую ўхЄ√Ёхї ЁрчьхЁэюёЄхщ ьюцэю єчэрЄ№ т√чютюь ЇєэъЎшш size. ▌Єр ЇєэъЎш  тючтЁр∙рхЄ тхъЄюЁ-ёЄЁюъє шч ўхЄ√Ёхї ¤ыхьхэЄют. ╧хЁт√щ шч ¤Єшї ¤ыхьхэЄют Ёртхэ ЁрчьхЁє ьрёёштр тфюы№ яхЁтюую шчьхЁхэш , тЄюЁющ ¤ыхьхэЄ фрхЄ ЁрчьхЁ тфюы№ тЄюЁюую шчьхЁхэш  ш Є. ф.:
v = size ( ё ) v =