"Вычисления, визуализация и программирование в среде MATLAB 5.x" - читать интересную книгу автора (Мартынов Н. Н., Иванов А. П.)char
double ╨шёєэюъ 3.9 ╨рёяюыюцхээ√щ т яЁртющ ўрёЄш ¤Єюую юъэр тхЁЄшъры№э√щ ёЄюысхЎ чрфрхЄ ёююЄтхЄёЄтшх ьхцфє ЎтхЄюь юЄюсЁрцхэш ўххъ ш шї Єшяюь. ┬ ЎтхЄэюь трЁшрэЄх эруы фэю тшфэю, ўЄю чхыхэ√щ ЎтхЄ ёююЄтхЄёЄтєхЄ ёЄЁєъЄєЁрь, ш яю¤Єюьє яЁ ьюєуюы№эшъ т ыхтющ эшцэхщ ўрёЄш шьххЄ чхыхэ√щ ЎтхЄ. ┬ЄюЁющ яЁш Єэ√щ ЇръЄ ёюёЄюшЄ т Єюь, ўЄю ъ эрёЄю ∙хьє ьюьхэЄє эрьш шчєўхэ√ яюўЄш тёх Єшя√ фрээ√ї ёшёЄхь√ MATLAB. ╬ёЄрыё ыш°№ Єшя фрээ√ї sparse, яЁхфёЄрты ■∙шщ ёяхЎшры№э√щ ьхЄюф їЁрэхэш ¤ыхьхэЄют ўшёыютющ ЁрчЁхцхээющ ьрЄЁшЎ√ (ъюышўхёЄтю эхэєыхт√ї ¤ыхьхэЄют ьрЄЁшЎ√ ьэюую ьхэ№°х юс∙хую ўшёыр ¤ыхьхэЄют). ▌ЄюЄ Єшя фрээ√ї тючэшърхЄ ш °шЁюъю яЁшьхэ хЄё , эряЁшьхЁ, яЁш Ёх°хэшш Єшяют√ї чрфрў фшЇЇхЁхэЎшры№э√ї єЁртэхэшщ. ╠√ яюфЁюсэю ЁрёёьюЄЁшь ¤ЄюЄ єчъюёяхЎшрышчшЁютрээ√щ Єшя фрээ√ї т ёыхфє■∙хщ уыртх, яюёт ∙хээющ тёЄЁюхээ√ь ёЁхфёЄтрь ёшёЄхь√ MATLAB фы Ёх°хэш Єшяют√ї чрфрў рыухсЁ√, рэрышчр ш ёЄрЄшёЄшъш. └ яюър ыш°№ яЁюфхьюэёЄЁшЁєхь, ъръ яЁхюсЁрчютрЄ№, эряЁшьхЁ, юс√ўэє■ ўшёыютє■ ьрЄЁшЎє т ЁрчЁхцхээє■: └ = [0 0 3; 1 0 0; 0 0 0]; spA = sparse ( a ); spA = (2,1) 7 (1,3) 3 MATLAB 5.x. ┬√ўшёыхэш , тшчєрышчрЎш , яЁюуЁрььшЁютрэшх 109 ╬Єё■фр тшфэю, ўЄю фы ьрЄЁшЎ Єшяр sparse т ярь Єш ъюья№■ЄхЁр їЁрэ Єё эх тёх ¤ыхьхэЄ√, р Єюы№ъю эхэєыхт√х тьхёЄх ё шї шэфхъёрьш. ┬ шЄюух ьрЄЁшЎр spA чрэшьрхЄ т ярь Єш ъюья№■ЄхЁр 40 срщЄ (ьюцэю єчэрЄ№ ъюьрэфющ whos spA), р шёїюфэр ьрЄЁшЎр └ Єшяр double чрэшьрхЄ т ярь Єш 72 срщЄр, Єръ ўЄю ¤ъюэюьш ярь Єш ъюья№■ЄхЁр эрышЎю. ╬ёЄртшт сюыхх яюфЁюсэюх шчєўхэшх Єшяр фрээ√ї sparse фю ёыхфє■∙хщ уырт√, эрЁшёєхь эруы фэє■ фшруЁрььє, фхьюэёЄЁшЁє■∙є■ эрсюЁ тёхї Єшяют фрээ√ї ёшёЄхь√ MATLAB ш шї ёт ч№ ьхцфє ёюсющ (ёь. Ёшё. 3.10). array char numeric struct cell unit8 double sparce ╨шёєэюъ 3.10 ╟фхё№ array - ёюсшЁрЄхы№э√щ ЄхЁьшэ фы тёхї ьрёёштют ёшёЄхь√ MATLAB, р ЄхЁьшэ numeric ёшьтюышчшЁєхЄ тёх ўшёыют√х Єшя√. ═хы№ч ёючфрЄ№ яхЁхьхээ√ї Єшяр array шыш numeric. ╠юцэю ёърчрЄ№, ўЄю ¤Єю юсюс∙хээ√х (тшЁЄєры№э√х) Єшя√. ╫Єхэшх ш чряшё№ яЁюшчтюы№э√ї сшэрЁэ√ї Їрщыют ╨рэхх эрьш с√ыш ЁрёёьюЄЁхэ√ Єръ эрч√трхь√х ╠└╥-Їрщы√, т ъюЄюЁ√ї ёюїЁрэ ■Єё яхЁхьхээ√х шч Ёрсюўхщ юсырёЄш ёшёЄхь√ MATLAB. ▌Єш Їрщы√ шьх■Є эхюяєсышъютрээ√щ ЇюЁьрЄ, эю ыхуъю ьюуєЄ с√Є№ яЁюўшЄрэ√ ъюьрэфющ load. ╩Ёюьх Єюую, ёшёЄхьр MATLAB яЁхфюёЄрты хЄ яЁюуЁрььшёЄє ёяхЎшры№э√щ эрсюЁ ЇєэъЎшщ, ъюЄюЁ√х ьюцэю т√ч√трЄ№ шч яЁюуЁрьь эр ч√ъх ╤ ш ъюЄюЁ√х яЁхфэрчэрўхэ√ фы ёўшЄ√трэш шэЇюЁьрЎшш шч ╠└╥-Їрщыют. ═ю ъръ с√Є№, хёыш фрээ√х эєцэю ттхёЄш эх шч ╠└╥-Їрщыр ш эх ё ъыртшрЄєЁ√, р ёўшЄрЄ№ шч єцх ёЇюЁьшЁютрээюую Їрщыр, яЁшўхь чряшё№ ¤Єюую Їрщыр ьюуыр яЁюшчтюфшЄ№ё ёрь√ьш Ёрчэ√ьш ёяюёюсрьш ш яЁюуЁрььэ√ьш ёЁхфёЄтрьш. ╚ыш эєцэю ёюїЁрэшЄ№ Ёхчєы№ЄрЄ√ т√ўшёыхэшщ т Їрщырї чрЁрэхх юуютюЁхээюую ЇюЁьрЄр, яЁхфэрчэрўхээ√ї фы фры№эхщ°хщ ЁрсюЄ√ т ёюёЄртх шэ√ї яЁюуЁрььэ√ї ёЁхфёЄт. ─ы ¤Єшї Ўхыхщ яръхЄ MATLAB ЁрёяюырурхЄ яюыэ√ь эрсюЁюь ёяхЎшры№э√ї ЇєэъЎшщ фы ЁрсюЄ√ ё Їрщырьш яЁюшчтюы№э√ї ЇюЁьрЄют ш Єшяют. ╧юф Єшярьш ь√ чфхё№ шьххь т тшфє Ёрчфхыхэшх Їрщыют эр сшэрЁэ√х Їрщы√ ш ЄхъёЄют√х Їрщы√. ┴шэрЁэ√х Їрщыр, ъръ шчтхёЄэю, яЁхфэрчэрўхэ√ фы їЁрэхэш яЁюшчтюы№э√ї фрээ√ї т тшфх яюЄюър срщЄют, эшъръ яЁхфэрьхЁхээю эх шэЄхЁяЁхЄшЁєхь√ї. ╤рь√х їрЁръЄхЁэ√х юяхЁрЎшш ё Єръшьш Їрщырьш - ¤Єю юяхЁрЎшш чряшёш шыш ёўшЄ√трэш чрфрээюую ъюышўхёЄтр срщЄют шэЇюЁьрЎшш. ┬ яЁюЄштюяюыюцэюёЄ№ ¤Єюьє ёюфхЁцшьюх ЄхъёЄют√ї Їрщыют ЄЁръЄєхЄё ъръ эрсюЁ тёхї ёшьтюыют шч эхъюЄюЁющ ъюфшЁютъш, шьх■∙шї тшчєры№эюх яЁхфёЄртыхэшх (¤Єю ьюцэю эрчтрЄ№ юсюс∙хээ√ь ЄхъёЄюь), р Єръцх чрфрээ√щ эрсюЁ Єръ эрч√трхь√ї єяЁрты ■∙шї ёшьтюыют, Єръшї, ъръ лтючтЁрЄ ърЁхЄъш╗, ляхЁхтюф ёЄЁюъш╗, лъюэхЎ Їрщыр╗. ┬ яюыэюь ёюуырёшш ёю ётюшь эрчтрэшхь ЄхъёЄют√х Їрщы√ шфхры№эю яюфїюф Є фы їЁрэхэш ЄхъёЄют, р сшэрЁэ√х Їрщы√ сюы№°х яюфїюф Є фы яыюЄэюую (схч шчыш°эхую Ёрёїюфр ярь Єш) ш ёъЁ√Єэюую (эхы№ч яЁюўшЄрЄ№ шї ёюфхЁцшьюх яЁюёЄхщ°шьш ЄхъёЄют√ьш ЁхфръЄюЁрьш Єшяр Notepad) їЁрэхэш ўшёыют√ї фрээ√ї ш ьр°шээ√ї ъюфют ъюья№■ЄхЁэ√ї яЁюуЁрьь. ═хчртшёшью юЄ Єшяр Їрщыр яхЁхф эрўрыюь ЁрсюЄ√ хую эєцэю юЄъЁ√Є№ ёяхЎшры№эющ ЇєэъЎшхщ f open: fid = fopen ( 'шь _Їрщыр', 'Їыру' ) уфх шь Їрщыр ьюцхЄ яЁхфтрЁ Є№ё яюыэ√ь яєЄхь ъ эхьє (шэрўх Їрщы фюыцхэ ЁрёяюырурЄ№ё т Єхъє∙хь ърЄрыюух ёшёЄхь√ MATLAB). ┬ЄюЁющ ярЁрьхЄЁ ¤Єющ ЇєэъЎшш - Єръ эрч√трхь√щ Їыру юЄъЁ√Єш Їрщыр уютюЁшЄ ю ёяюёюсх фры№эхщ°хщ ЁрсюЄ√ ё Їрщыюь: V ╥юы№ъю фы ўЄхэш V ╥юы№ъю фы чряшёш (яЁхф√фє∙хх ёюфхЁцшьюх ЄхЁ хЄё , р эхёє∙хёЄтє■∙шщ Їрщы ёючфрхЄё ) ,у+, ╫Єхэшх ш чряшё№ юфэютЁхьхээю 'р' ─юсртыхэшх т ъюэхЎ Їрщыр ╩ єърчрээ√ь т ЄхъёЄют√ї ёЄЁюърї сєътрь ёыхфєхЄ фюсрты Є№ сєътє '▄' фы юЄъЁ√Єш Їрщыр т сшэрЁэюь Ёхцшьх ш сєътє ' t' фы юЄъЁ√Єш Їрщыр т ЄхъёЄютюь Ёхцшьх. ═ряЁшьхЁ, Їыру ' r+t' ючэрўрхЄ юъЁ√Єшх ЄхъёЄютюую Їрщыр фы ўЄхэш ш чряшёш, Їыру ' wb' ючэрўрхЄ юЄъЁ√Єшх сшэрЁэюую Їрщыр фы чряшёш. ╘єэъЎш f open тючтЁр∙рхЄ ўшёыютющ шфхэЄшЇшърЄюЁ юЄъЁ√Єюую Їрщыр, ъюЄюЁ√щ эрфю шёяюы№чютрЄ№ т ърўхёЄтх ярЁрьхЄЁр фы ЇєэъЎшщ ўЄхэш ш чряшёш т ¤ЄюЄ Їрщы. ┼ёыш юяхЁрЎш юЄъЁ√Єш Їрщыр эх єфрырё№ (¤Єю тючьюцэю ъръ яю яЁшўшэх юЄёєЄёЄтш Їрщыр, Єръ ш яю яЁшўшэх эхяЁртшы№эюую єърчрэш яєЄш ъ эхьє эр фшёъх), Єю ЇєэъЎш f open тючтЁр∙рхЄ -1. ┬ёхуфр ёыхфєхЄ яЁютхЁ Є№ тючтЁрЄ ЇєэъЎшш fopen. MATLAB 5.x. ┬√ўшёыхэш , тшчєрышчрЎш , яЁюуЁрььшЁютрэшх 111 ┼ёыш Їрщы сюы№°х эх ЄЁхсєхЄё , хую ёыхфєхЄ ъръ ьюцэю ёъюЁхх (ўЄюс√ чЁ эх эряЁ урЄ№ ъюья№■ЄхЁ ЁрсюЄющ ё эхэєцэ√ьш ЁхёєЁёрьш) чръЁ√Є№ ЇєэъЎшхщ fclose: fclose( fid ) ╧юъюэўшт ё шчєўхэшхь тюяЁюёр юс юЄъЁ√Єшш Їрщыют, яхЁхщфхь ъ тюяЁюёє ю ўЄхэшш ш чряшёш т эшї яюыхчэющ шэЇюЁьрЎшш. ╤хщўрё ёюёЁхфюЄюўшьё эр сшэрЁэ√ї Їрщырї, р ЄхъёЄют√х юЄыюцшь фю ёыхфє■∙хую яюфЁрчфхыр. ╫Єхэшх ш чряшё№ шэЇюЁьрЎшш т сшэрЁэ√х Їрщы√ юёє∙хёЄты ■Єё ЇєэъЎш ьш fread ш fwrite. ╘єэъЎш fwrite, яЁхфэрчэрўхээр фы чряшёш шэЇюЁьрЎшш т сшэрЁэ√х Їрщы√, шьххЄ ёыхфє■∙шх рЁуєьхэЄ√: fwrite( fid, A, 'precision' ) уфх fid - Їрщыют√щ шфхэЄшЇшърЄюЁ, тючтЁр∙рхь√щ ЇєэъЎшхщ f open; A - ўшёыютющ тхъЄюЁ шыш ьрЄЁшЎр, ў№ш ¤ыхьхэЄ√ яюфыхцрЄ чряшёш т Їрщы; ёЄЁюър 'precision' уютюЁшЄ ю ЁрчьхЁх ярь Єш, юЄтюфшьющ яюф тх∙хёЄтхээ√х ўшёыр. ╠√ чэрхь, ўЄю т ёшёЄхьх MATLAB яюф тх∙хёЄтхээ√х ўшёыр юЄтюф Є 8 срщЄ шыш 64 сшЄр. ╙ърчрэшхь ЇєэъЎшш fwrite ю Єръюь ЁрчьхЁх ярь Єш ёыєцшЄ ЄхъёЄютр ёЄЁюър ' float64'. ╨рёёьюЄЁшь яЁръЄшўхёъшщ яЁшьхЁ, шыы■ёЄЁшЁє■∙шщ ЁрсюЄє ЇєэъЎшш fwrite. ┬ ёыхфє■∙хь ЇЁруьхэЄх ёючфр■Єё тхъЄюЁ-ёЄюысхЎ └ ЁрчьхЁюь 3 ї 1 ш ьрЄЁшЎр ┬ ЁрчьхЁюь 2x3, ъюЄюЁ√х чрЄхь чряшё√тр■Єё т Їрщы ё шьхэхь 'dataTest.gqw' (ёЄюы№ т√ўєЁэюх Ёрё°шЁхэшх шьхэш Їрщыр т√сЁрэю ёяхЎшры№эю, ўЄюс√ юэю ёыєўрщэю эх ёютярыю ё Ёрё°шЁхэш ьш Їрщыют шчтхёЄэ√ї Windows-яЁшыюцхэшщ): р = [ 1; 2; 3 ]; ┬ = [ 4 5 6; 7 8 9 ]; fidl = fopen( 'dataTest.gqw', 'wb' ); fwrite( fidl, a, 'float64' fwrite( fidl, B, 'float64' fclose( fidl ); ). |
|
|