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

уфх varName Ч яЁюшчтюы№эю т√сшЁрхьюх яЁюуЁрььшёЄюь шь  Єръ эрч√трхьющ яхЁхьхээющ Ўшъыр. ┬ юЄышўшх юЄ яхЁтюую трЁшрэЄр юяхЁрЄюЁр Ўшъыр чфхё№ ыхуъю яЁюуэючшЁютрЄ№ ъюышўхёЄтю шЄхЁрЎшщ (яютЄюЁют), Єръ ъръ юсючэрўхээюх ьэюуюЄю-
156 ├ыртр 5. ╚эЄхЁръЄштэ√щ Ёхцшь ЁрсюЄ√ ш хую ртЄюьрЄшчрЎш  ё яюью∙№■ ёЎхэрЁшхт
ўшхь Єхыю Ўшъыр т√яюыэ хЄё  фы  тёхї тючьюцэ√ї чэрўхэшщ яхЁхьхээющ varName. ═рсюЁ тючьюцэ√ї чэрўхэшщ фы  яхЁхьхээющ Ўшъыр яюёЄрты хЄ т√Ёрцхэшх, ъюЄюЁюх ёЄюшЄ яюёых ъы■ўхтюую ёыютр for. ╫р∙х тёхую ¤Єю т√Ёрцхэшх яЁхфёЄртыхэю ё яюью∙№■ шчєўхээющ Ёрэхх т уы. 1 юяхЁрЎшш фшрярчюэ чэрўхэшщ. ┬ ёыхфє■∙хь ЇЁруьхэЄх ъюфр юёє∙хёЄты хЄё  ёыюцхэшх 57 ўыхэют Ё фр:
S = 0;
for k = 1 : 1 : 57
S = S + 1/ъ╦2;
end
╧Ёш ърцфюь эютюь яЁюїюфх яхЁхьхээр  Ўшъыр ъ єтхышўштрхЄё  эр хфшэшЎє. ╩ръ ыхуъю чрьхЄшЄ№, чфхё№ юёє∙хёЄты хЄё  ёєььшЁютрэшх Єюую цх Ё фр, ўЄю ш т яЁшьхЁх, яюёт ∙хээюь юяхЁрЄюЁє Ўшъыр while...end. ┬ яЁхф√фє∙хь яЁшьхЁх єёыютшхь юёЄрэютр с√ыю ЄЁхсютрэшх ъ тхышўшэх юўхЁхфэюую ёырурхьюую, р ЄхяхЁ№ ¤Єшь єёыютшхь  ты хЄё  шёўхЁярэшх тёхї тючьюцэ√ї чэрўхэшщ яхЁхьхээющ Ўшъыр. ┬ шЄюух ьюцэю ёфхырЄ№ т√тюф, ўЄю шёяюы№чютрэшх Єюую шыш шэюую трЁшрэЄр юяхЁрЄюЁр Ўшъыр фшъЄєхЄё  юёюсхээюёЄ ьш ъюэъЁхЄэющ ьрЄхьрЄшўхёъющ чрфрўш.
┬ьхёЄю юяхЁрЎшш чрфрэш  фшрярчюэр ьюцэю  тэю єърчрЄ№ тхё№ эрсюЁ тючьюцэ√ї чэрўхэшщ т тшфх тхъЄюЁ-ёЄЁюъш, эряЁшьхЁ:
for m = [ 2, 5, 7, 8, 11, 23 ]
ўЄю яЁштхфхЄ ъ °хёЄш шЄхЁрЎш ь. ╧Ёш яхЁтющ шЄхЁрЎшш яхЁхьхээр  Ўшъыр m сєфхЄ Ёртэр 2, яЁш тЄюЁющ - 5 ш Є. ф. фю шёўхЁярэш  тёхї тючьюцэ√ї чэрўхэшщ.
─юёЄрЄюўэю эхюс√ўэ√ь ьюцхЄ яюърчрЄ№ё  шёяюы№чютрэшх ьрЄЁшЎ т єяЁрты ■∙хь т√Ёрцхэшш:
└ = [ 1 2; 3 4]; for k = A
╥ръющ Ўшъы сєфхЄ яютЄюЁ Є№ё  Ёютэю ёЄюы№ъю Ёрч, ёъюы№ъю ёЄюысЎют т ьрЄЁшЎх └, Єю хёЄ№ фтр Ёрчр фы  фрээюую ъюэъЁхЄэюую ёыєўр . ┬ ърцфющ шЄхЁрЎшш яхЁхьхээр  Ўшъыр яЁшэшьрхЄ чэрўхэшх юўхЁхфэюую ёЄюысЎр ьрЄЁшЎ√, Єю хёЄ№  ты хЄё  тхъЄюЁ-ёЄюысЎюь. ═ряЁшьхЁ, ЇЁруьхэЄ
S = 0; р = [ 1 2; 3 4];
for k = A
S = S + sqrt{ ъ(1)╦2 + ъ(2)ы2 );
end
т√ўшёы хЄ ёєььє лфышэ╗ ёЄюысЎют ьрЄЁшЎ√ └.
╬ср тшфр юяхЁрЄюЁют Ўшъыр ьюцэю фюёЁюўэю яЁхЁтрЄ№, хёыш эряшёрЄ№ ъы■ўхтюх ёыютю break тэєЄЁш Єхыр Ўшъыр. ▌Єю яючтюы хЄ Ёрчьх∙рЄ№ ЇръЄшўхёъюх єёыютшх юёЄрэютр Ўшъыр тэєЄЁш Єхыр Ўшъыр, р эх т хую чруюыютъх. ┬ ¤Єюь ёыєўрх т чруюыютъх Ўшъыр ьюцэю яшёрЄ№ т√Ёрцхэш  тшфр while 1 (тёхуфр шёЄшээюх т√Ёрцхэшх).
MATLAB 5.x. ┬√ўшёыхэш , тшчєрышчрЎш , яЁюуЁрььшЁютрэшх 157
┬ ёрьюь эрўрых фрээюую яюфЁрчфхыр, яюёт ∙хээюую юяхЁрЄюЁрь Ўшъыр, ь√ ёърчрыш, ўЄю т ёшёЄхьх MATLAB юўхэ№ ўрёЄю ьюцэю юЄърчрЄ№ё  юЄ шёяюы№чютрэш  ¤Єшї юяхЁрЄюЁют, яЁшьхэшт тьхёЄю эшї ъюьяръЄэ√х юяхЁрЎшш ╠- ч√ър, эряЁртыхээ√х эр ьрёёютє■ юсЁрсюЄъє ьрёёштют. ╤хщўрё єёшышь ¤Єю т√ёърч√трэшх: тхчфх, уфх ¤Єю тючьюцэю, тьхёЄю юяхЁрЄюЁют Ўшъыр ыєў°х яЁшьхэ Є№ ¤ътштрыхэЄэ√х яю Ёхчєы№ЄрЄрь юяхЁрЎшш ё ьрёёштрьш, Єръ ъръ яюёыхфэшх шёяюыэ ■Єё  т ёшёЄхьх MATLAB эрьэюую с√ёЄЁхх.
═ряЁшьхЁ, тьхёЄю ЇЁруьхэЄр ъюфр ё юяхЁрЄюЁюь Ўшъыр
ъ = 0;
for ї = 0 : 0.1 :100
ъ = ъ + 1; є( ъ )=cos( ї ); end
ыєў°х шёяюы№чютрЄ№ юяхЁрЎшш ё ьрёёштрьш:
ї = 0 : 0.1 : 100; є = cos( ї ) ;
Єръ ъръ юэш шёяюыэ ■Єё  с√ёЄЁхх ш чряшё√тр■Єё  ъюЁюўх.
╟рьхэє юяхЁрЄюЁют Ўшъыр ¤ътштрыхэЄэ√ьш шь яю Ёхчєы№ЄрЄє ьрёёют√ьш юяхЁрЎш ьш ╠- ч√ър яЁшэ Єю эрч√трЄ№ тхъЄюЁшчрЎшхщ ъюфр.
└эшьрЎш  ш чтєъ т ёшёЄхьх MATLAB
┬ уы. 2 ь√ шчєўрыш уЁрЇшўхёъшх тючьюцэюёЄш ёшёЄхь√ MATLAB яю шчюсЁрцхэш■ ёЄрЄшўхёъшї (эхшчьхээ√ї тю тЁхьхэш) уЁрЇшъют ЇєэъЎшщ, ъръ фтєьхЁэ√ї, Єръ ш ЄЁхїьхЁэ√ї. ╥ръцх с√ыш ЁрёёьюЄЁхэ√ тюяЁюё√, ёт чрээ√х ё яюърчюь яЁюшчтюы№э√ї ЁрёЄЁют√ї шчюсЁрцхэшщ. └ ЄхяхЁ№ ь√ ЁрёёьюЄЁшь тючьюцэюёЄш яръхЄр MATLAB яю яюърчє фтшцє∙шїё  (ьхэ ■∙шїё  тю тЁхьхэш) шчюсЁрцхэшщ, ўЄю трцэю фы  тшчєрышчрЎшш фшэрьшўхёъшї фрээ√ї ш фы  тёхёЄюЁюээхую шчєўхэш  ╟╬-юс·хъЄют.
╧Ёш ¤Єюь эшъръшї ёыюцэ√ї ёяхЎшрышчшЁютрээ√ї яЁюуЁрьь эх яюЄЁхсєхЄё . ╟рфрўр яюыэюёЄ№■ Ёх°рхЄё  тёЄЁюхээ√ьш ёЁхфёЄтрьш ёшёЄхь√ MATLAB, Єю хёЄ№ ыхуъю т√яюыэшьр т шэЄхЁръЄштэюь ёхрэёх (шыш эхёъюы№ъшї ёхрэёрї) ЁрсюЄ√.
╤є∙хёЄтє■Є фтр юёэютэ√ї ёяюёюср яюърчр рэшьрЎшюээ√ї шчюсЁрцхэшщ. ╧хЁт√щ ёяюёюс чръы■ўрхЄё  т Єюь, ўЄю ь√ т Ўшъых т√тюфшь ьхэ ■∙шхё  ърЁЄшэъш т уЁрЇшўхёъшщ юс·хъЄ axes, ётющёЄтр ъюЄюЁюую (ўхЁхч ётющёЄтр хую фюўхЁэшї юс·хъЄют) єёЄрэртыштр■Єё  ёяхЎшры№э√ь юсЁрчюь фы  фюёЄшцхэш  яЁшхьыхьюую ърўхёЄтр яхЁхЁшёютъш ёюфхЁцшьюую уЁрЇшўхёъюую юъэр ёшёЄхь√ MATLAB. ┬ЄюЁющ ёяюёюс ёюёЄюшЄ т яЁхфтрЁшЄхы№эющ яюфуюЄютъх юЄфхы№э√ї ърфЁют, ъюЄюЁ√х чрярёр■Єё  фы  фры№эхщ°хую яюърчр т эхъюЄюЁюь ўшёыютюь ьрёёштх. ╤рь цх яюёыхфютрЄхы№э√щ яюърфЁют√щ яюърч (Єръ ш їюўхЄё  ёърчрЄ№ лъшэюЇшы№ь╗) юёє∙хёЄты хЄё  ёяхЎшры№эющ ЇєэъЎшхщ movie (яхЁхтюфшЄё  ъръ лъшэю╗).
158 ├ыртр 5. ╚эЄхЁръЄштэ√щ Ёхцшь ЁрсюЄ√ ш хую ртЄюьрЄшчрЎш  ё яюью°№■ ёЎхэрЁшхт
═рўэхь шчыюцхэшх ё яхЁтюую ёяюёюср. ─ы  яЁшьхЁр т уЁрЇшўхёъюь юъэх ёшёЄхь√ MATLAB яЁюфхьюэёЄЁшЁєхь ЁртэюьхЁэюх фтшцхэшх яю юъЁєцэюёЄш ьрЄхЁшры№эюую Єхыр т тшфх сєёшэъш. ╤эрўрыр т√яюыэшь яюфуюЄютшЄхы№э√щ ЇЁруьхэЄ ъюфр:
ї = -1 : 0.01 : 1; yl = sqrt(l-x.*x); ╙ 2 = -yl;
plot(x,yl,'k',x,y2,'k'); axis square; hold on
уфх ЁшёєхЄё  ўхЁэ√ь ЎтхЄюь ъЁєуютр  ЄЁрхъЄюЁш , яю ъюЄюЁющ ш сєфхЄ фтшурЄ№ё  сєёшэър. ╩юьрэфр hold on эєцэр фы  Єюую, ўЄюс√ тхё№ яюёыхфє■∙шщ уЁрЇшўхёъшщ т√тюф юёє∙хёЄты ыё  т Єю цх ёрьюх уЁрЇшўхёъюх юъэю. ╥хяхЁ№ яЁюёЄрты хь сєёшэъє т хх эрўры№эюь яюыюцхэшш:
ї = 1; є = 0;
h = plot(x, є, '.у');
set(h, 'EraseMode','xor','MarkerSize',18);
л┴єёшэър╗ яЁхфёЄрты хЄ ёюсющ Єюцх уЁрЇшъ ЇєэъЎшш,  ты ■∙шщё  яЁ ьющ ышэшхщ, Єю хёЄ№ уЁрЇшўхёъшь юс·хъЄюь Єшяр line, ёюёЄю ∙шь шч хфшэёЄтхээющ |j'' Єюўъш ъЁрёэюую ЎтхЄр. ─рыхх ь√ фшэрьшўхёъш сєфхь шчьхэ Є№ ъююЁфшэрЄ√ Єюў-
' ъш, юЄэюё ∙хщё  ъ уЁрЇшўхёъюьє юс·хъЄє Єшяр line ё юяшёрЄхыхь я. ╤шёЄхьр
MATLAB сєфхЄ яЁш ¤Єюь ёЄшЁрЄ№ яЁхф√фє∙шх шчюсЁрцхэш  ¤Єюую уЁрЇшўхёъюую юс·хъЄр ш ЁшёютрЄ№ хую эют√х шчюсЁрцхэш . ╫Єюс√ Єрър  яхЁхЁшёютър с√ыр сюыхх луырфъющ╗ (їюЄ  тёх Ёртэю юэр эх яюыєўрхЄё  шфхры№эющ), эєцэю фы  юс·хъЄр Єшяр line єёЄрэютшЄ№ ётющёЄтю 'EraseMode' (ёяюёюс ёЄшЁрэш ) Ёртэ√ь чэрўхэш■ 'їюу' (яЁюшчтюфшЄё  юяхЁрЎш  лшёъы■ўр■∙хх ╚╦╚╗ эрф юс·хъЄюь ш яюфыюцъющ). ╚эрўх яхЁхЁшёютър сєфхЄ яЁюёЄю єцрёэющ - ёыш°ъюь ьхфыхээющ яЁш шэЄхэёштэюь льюЁурэшш╗ тёхую уЁрЇшўхёъюую юъэр.
═ръюэхЎ юёє∙хёЄты хь Ўшъышўхёъюх яЁюфтшцхэшх сєёшэъш ш хх яхЁхЁшёютъє:
t=0; dt=0.01; a=0.5;
while I, t=t+dt; x=cos(a*t); y=sin(a*t); ...
set(h,'XData',x,'YData',y); end
─ы  юёЄрэютъш лсхёъюэхўэюую╗ Ўшъыр (єёыютшх фы  Ўшъышўхёъюую яютЄюЁр тёхуфр шёЄшээю) эєцэю тюёяюы№чютрЄ№ё  ъюьсшэрЎш ьш ъыртш° Ctrl+C шыш Ctrl+Break.