"Вычисления, визуализация и программирование в среде MATLAB 5.x" - читать интересную книгу автора (Мартынов Н. Н., Иванов А. П.)┼ёыш фтр ьрёёштр ёЄЁєъЄєЁ шьх■Є юфшэръют√щ эрсюЁ яюыхщ, Єю фюяєёърхЄё уЁєяяютюх яЁшётрштрэшх тшфр
MyStructl( 3 ) = AnotherStruct( 2 ); ъюуфр чэрўхэш тёхї яюыхщ тЄюЁюую ¤ыхьхэЄр ьрёёштр AnotherStruct ъюяшЁє■Єё т яюы ЄЁхЄ№хую ¤ыхьхэЄр ьрёёштр MyStructl. ┼ёыш ЁрсюЄр тхфхЄё т шэЄхЁръЄштэюь Ёхцшьх, ъюуфр тёх фрээ√х ттюф Єё ё ъыртшрЄєЁ√, ЁрёёьюЄЁхээ√щ яЁюЎхёё яюёыхфютрЄхы№эюую чрфрэш яюыхщ ш ¤ыхьхэЄют ьрёёштр ёЄЁєъЄєЁ тяюыэх юяЁртфрэ. ╬фэръю т яЁюуЁрььэюь Ёхцшьх юэ эхфюёЄрЄюўэю їюЁю° ё Єюўъш чЁхэш яЁюшчтюфшЄхы№эюёЄш. ┬ьхёЄю эхую ыєў°х шёяюы№чютрЄ№ ЇєэъЎш■ ё шьхэхь struct: MyStruct2 = struct( 'fieldl', [ 1 2 3]/field?'/Hello') ; MyStruct2(2)=struct('fieldl',[ 7 8 9] / field2' /World') ; ╧юърцхь ЄхяхЁ№ (їюЄ ¤Єю ш юўхтшфэю), ъръ яюфюсЁрЄ№ё ъ хфшэёЄтхээюьє ўшёыютюьє чэрўхэш■ т яюых data яхЁтюую ¤ыхьхэЄр ьрёёштр MyStructl. ─ы ¤Єюую 100 ├ыртр 3. ╠рёёшт√ ёшьтюыют, ёЄЁєъЄєЁ, ўххъ. ╘рщыют√х юяхЁрЎшш эрфю яЁшьхэшЄ№ фтх юяхЁрЎшш шэфхъёрЎшш ш юфэє юяхЁрЎш■ фюёЄєяр ъ яюы■ ёЄЁєъЄєЁ√. ═ряЁшьхЁ, фы Ёрэхх ёючфрээюую эрьш ьрёёштр ёЄЁєъЄєЁ MyStructl т√Ёрцхэшх MyStructl( 1 ).data( 1,2) шьххЄ чэрўхэшх 2.5, Єръ ъръ т яюых data Ёрёяюыюцхэ√ ўшёыют√х ьрЄЁшЎ√ 2x2 ш ёююЄтхЄёЄтє■∙шщ ¤ыхьхэЄ ўшёыютющ ьрЄЁшЎ√ фхщёЄтшЄхы№эю Ёртхэ 2.5. ╥хяхЁ№ ЁрёёьюЄЁшь сюыхх ёыюцэ√щ тюяЁюё юс юфэютЁхьхээюь фюёЄєях ъ ёюфхЁцшьюьє юфэюшьхээ√ї яюыхщ тёхї ¤ыхьхэЄют эхъюЄюЁюую ьрёёштр ёЄЁєъЄєЁ. ╧єёЄ№, ъ яЁшьхЁє, ЄЁхсєхЄё ёъюяшЁютрЄ№ ш ёюїЁрэшЄ№ т яхЁхьхээющ v юс·хфшэхээюх ёюфхЁцшьюх яюыхщ data тёхї ¤ыхьхэЄют ёючфрээюую т√°х ьрёёштр ёЄЁєъЄєЁ MyStructl. ┬юЄ ъюьяръЄэюх Ёх°хэшх ¤Єющ чрфрўш, яЁхфырурхьюх ёшёЄхьющ MATLAB: v = [ MyStructl.data ] ans = 1.0000 2.5000 -5.7000 -2.5000 -7.8000 2.3000 7.1000 8.4000 ╟фхё№ яЁшьхэхэшх яЁ ьюєуюы№э√ї ёъюсюъ юс чрЄхы№эю, Єръ ъръ т ╠- ч√ъх т√Ёрцхэшх MyStructl.data ¤ътштрыхэЄэю ёыхфє■∙хьє ёяшёъє тхышўшэ, Ёрчфхыхээ√ї чря Є√ьш: MyStructl(I).data, MyStructl(2).data ┼ёыш чръы■ўшЄ№ Єръющ ёяшёюъ т яЁ ьюєуюы№э√х ёъюсъш, Єю яюыєўрхЄё ёшэЄръёшўхёъш ъюЁЁхъЄэюх т√Ёрцхэшх фы уюЁшчюэЄры№эющ ъюэърЄхэрЎшш фтєї ўшёыют√ї ьрЄЁшЎ 2 ї 2. ┬ Ёхчєы№ЄрЄх Єръющ юяхЁрЎшш яхЁхьхээр v ёЄрэютшЄё ўшёыютющ ьрЄЁшЎхщ 2 ї 4. ─ы єфрыхэш эхъюЄюЁюую яюы шч тёхї ¤ыхьхэЄют ёючфрээюую ьрёёштр ёЄЁєъЄєЁ яЁшьхэ ■Є ЇєэъЎш■ rmf ield: MyStruct2=rmfield(MyStruct2,'field2') ; ╧юёых ¤Єюую т ьрёёштх ёЄЁєъЄєЁ MyStruct2, ёючфрээюь эрьш Ёрэхх (ёь. т√°х), юёЄрхЄё Єюы№ъю яюых f ieldl. ┬ ърўхёЄтх ёюфхЁцшьюую эхъюЄюЁюую яюы ёЄЁєъЄєЁ√ ьюцхЄ т√ёЄєярЄ№ фЁєур ёЄЁєъЄєЁр, Єю хёЄ№ ёЄЁєъЄєЁ√ ьюуєЄ с√Є№ тыюцхээ√ьш. ┬ ърўхёЄтх шьхэш тыюцхээющ ёЄЁєъЄєЁ√ т√ёЄєярхЄ шь яюы юс·хьы■∙хщ ёЄЁєъЄєЁ√: Outer.number = 1; Outer.inner.name='namel'; Outer.inner.data=[ 5 3; 7 8]; 101 ╟фхё№ Outer- шь тэх°эхщ (юс·хьы■∙хщ) ёЄЁєъЄєЁ√, a inner- шь тэєЄЁхээхщ ёЄЁєъЄєЁ√, ты ■∙хщё яюыхь ёЄЁєъЄєЁ√ Outer. ─ы ўЄхэш ўшёыютюую фрээюую, ёЄю ∙хую тю тЄюЁющ ёЄЁюъх яхЁтюую ёЄюысЎр т яюых data, эєцэю яЁшьхэшЄ№ т√Ёрцхэшх ё фтєь Єюўърьш, уфх яхЁтр Єюўър ючэрўрхЄ фюёЄєя ъ яюы■ inner, ты ■∙хьєё ёЄЁєъЄєЁющ, р тЄюЁр Єюўър юёє∙хёЄты хЄ фюёЄєя ъ яюы■ data ¤Єющ тэєЄЁхээхщ ёЄЁєъЄєЁ√: Outer.inner.data( 2, 1 ) ans = 7 ╬ Єюь, ъръ єёЄЁюхэ√ ёЄЁєъЄєЁ√ Outer ш inner, ёшёЄхьр MATLAB ёююс∙рхЄ Єръ, ъръ яюърчрэю эр Ёшё. 3.5. Хi MATLAB Command Window File Edit Window Help ╗ Outer Outer = mmiber: 1 inner: [lxl struct] ╗ Outer, inner ans = name: 'name├ data: [2x2 double] ╨шёєэюъ 3.5 ╠рёёшт√ ёЄЁєъЄєЁ, ъръ ь√ тшфхыш т√°х, ьюуєЄ фшэрьшўхёъш шчьхэ Є№ ёюёЄрт ётюшї яюыхщ. ┬ ы■сющ ьюьхэЄ, юфэръю, ьюцэю ё яюью∙№■ ёяхЎшры№э√ї ЇєэъЎшщ яЁютхЁшЄ№, шч ъръшї яюыхщ ёюёЄюшЄ ёЄЁєъЄєЁр. ┬юЄ ёяшёюъ ¤Єшї ЇєэъЎшщ: isstruct ( St ) - тючтЁр∙рхЄ шёЄшэє, хёыш рЁуєьхэЄ ёЄЁєъЄєЁр. isfield( St, 'name' )- тючтЁр∙рхЄ шёЄшэє, хёыш шьххЄё Єръюх яюых. fieldnames ( St )-тючтЁр∙рхЄ ьрёёшт ёЄЁюъ ё шьхэрьш тёхї яюыхщ. ╤ЄЁєъЄєЁ√ MATLAB ьюцэю эрчтрЄ№ руЁхушЁютрээ√ь Єшяюь фрээ√ї. ─Ёєушь руЁхушЁютрээ√ь Єшяюь фрээ√ї т ёшёЄхьх MATLAB ты ■Єё Єръ эрч√трхь√х ўхщъш (cells). ╥юы№ъю ўЄю єяюь эєЄр ЇєэъЎш fieldnames тючтЁр∙рхЄ ьрёёшт 1 102 ├ыртр 3. ╠рёёшт√ ёшьтюыют, ёЄЁєъЄєЁ, ўххъ. ╘рщыют√х юяхЁрЎшш (эрсюЁ) ёЄЁюъ шьхээю т тшфх ьрёёштр ўххъ, Єръ ўЄю ёрьюх тЁхь яЁшёЄєяшЄ№ ъ шчєўхэш■ ¤Єюую Єшяр фрээ√ї. ╠рёёшт√ ўххъ ╠рёёшт ўххъ (cell array) ёюфхЁцшЄ т ърўхёЄтх ётюшї ¤ыхьхэЄют ьрёёшт√ Ёрчэ√ї Єшяют. ╠юцэю ёърчрЄ№, ўЄю ьрёёшт ўххъ ты хЄё ьрёёштюь ьрёёштют. ╧ю ёєЄш юэ ты хЄё єэштхЁёры№э√ь ъюэЄхщэхЁюь - хую ўхщъш (¤ыхьхэЄ√) ьюуєЄ ёюфхЁцрЄ№ ы■с√х Єшя√ ш ёЄЁєъЄєЁ√ фрээ√ї, ё ъюЄюЁ√ьш ЁрсюЄрхЄ MATLAB, -ўшёыют√х ьрёёшт√ ы■сющ ЁрчьхЁэюёЄш, ьрёёшт√ Єшяр uint8, ёЄЁюъш, ьрёёшт√ ёЄЁєъЄєЁ ш, эръюэхЎ, тыюцхээ√х ьрёёшт√ ўххъ. ┬ ётю■ юўхЁхф№, ьрёёшт ўххъ ьюцхЄ с√Є№ яюыхь ёЄЁєъЄєЁ√. ╠хЄюф√ ёючфрэш ьрёёштют ўххъ яюїюцш эр ьхЄюф√ ёючфрэш ёЄЁєъЄєЁ. ╩ръ ш т ёыєўрх ёЄЁєъЄєЁ, ьрёёшт√ ўххъ ьюуєЄ с√Є№ ёючфрэ√ ышсю яєЄхь яюёыхфютрЄхы№эюую яЁшётрштрэш чэрўхэшщ юЄфхы№э√ь ¤ыхьхэЄрь ьрёёштр, ышсю Ўхышъюь яЁш яюью∙ш ёяхЎшры№эющ ЇєэъЎшш cell. ╧юфўхЁъэхь ё ёрьюую эрўрыр, ўЄю трцэю ЁрчышўрЄ№ ўхщъє (¤ыхьхэЄ ьрёёштр ўххъ) ш хх ёюфхЁцшьюх. ╩рцфр ўхщър ты хЄё ьрёёштюь ёшёЄхь√ MATLAB, Єю хёЄ№ яюьшью ёюсёЄтхээю фрээ√ї ёюфхЁцшЄ т юЄтхфхээющ яюф эхх ярь Єш ъюья№■ЄхЁр х∙х ш ёыєцхсэє■ шэЇюЁьрЎш■, ю ъюЄюЁющ ь√ єцх ьэюую уютюЁшыш т√°х. ╬сЁрчэю уютюЁ , ўхщър - ¤Єю хх яюыхчэюх ёюфхЁцшьюх (ёюсёЄтхээю фрээ√х) яы■ё эхъюЄюЁр єяЁрты ■∙р юсюыюўър тюъЁєу ¤Єюую ёюфхЁцшьюую, яючтюы ■∙р їЁрэшЄ№ т ўхщъх яЁюшчтюы№э√х Єшя√ фрээ√ї ы■сюую ЁрчьхЁр. ┬ ёшёЄхьх MATLAB т√Ёрцхэшх ы■сюую Єшяр ьюцэю яЁхтЁрЄшЄ№ т ўхщъє, чръы■ўшт хую т ЇшуєЁэ√х ёъюсъш. ╥ръшь юсЁрчюь, ЇшуєЁэ√х ёъюсъш ты ■Єё ъюэ- ёЄЁєъЄюЁюь ўххъ. ─ы ёЁртэхэш эряюьэшь, ўЄю ъюэёЄЁєъЄюЁюь ўшёыют√ї ьрёёштют ёыєцрЄ ътрфЁрЄэ√х ёъюсъш (юяхЁрЎш ъюэърЄхэрЎшш), р ъюэёЄЁєъЄюЁюь ёшьтюы№э√ї ьрёёштют - ряюёЄЁюЇ√. |
|
|