ver beta.pdf

(59 KB) Pobierz
35632469 UNPDF
Matlab
DamianGrela,MichalHajec
June6,2003
Prowadzacy:drinz.MarianBubak
1
Matlabjestsrodowiskiemobliczeniowymumozliwiajacymwykonywaniezlo-
zonychobliczennumerycznychiwizualizacjedanych.Matlabwiazeanalizenu-
meryczna,obliczeniamacierzowe,przetwarzaniesygnalowigrafikewsposob
przyjaznydlauzytkownika,gdziezarownozadaniajakirozwiazaniasapo-
dawanewstandardowejpostacimatematycznej-beztradycyjnegoprogramowa-
nia.Matlabpozwalanarozwiazaniewieluzadannumerycznychwczasieznacznie
krotszym,nizzajelobynapisaniewlasnegokoduwClubFortranie.Matlabzaw-
ieratakzewielenarzedzizgrupowanychwpakiety,ukierunkowanenakonkretne
obszaryzastosowan,np.
”pakietsymulacjiSimulink,”bibliotekidomodelowaniaukladowsterowania,
”narzedziaprojektowaniasystemowprzetwarzaniasygnalowiobrazow.
NazwaMATLABpochodziodMATrixLABoratoryiwiazesiezpierwotna
koncepcjapakietu,polegajacanaudostepnieniuuzytkownikowiprocedurLINPACK-
aiEISPACK-aprzypomocyprostegointerakcyjnegojezykapolecen.Pier-
wszawersjaMATLAB-azostalanapisanawFortraniew1980.Jejautoremjest
C.Moler.WpieclatpozniejfirmaMathWorksInc.wprowadzilanarynekwersje
komercyjna,napisanawjezykuC.Wersjatadodzisiajzostalaznacznierozsz-
erzonaiobejmujerozneplatformysprzetowepoczawszyodPC,askonczywszy
nasuperkomputerach.
Gwnymizaletetamipakietus:”zaimplementowanezaawansowanefunkcje
matematykistosowanej”skonstruowanyjakojzykprogramowaniawysokiego
poziomu”duawydajnomatematycznychoperacjimacierzowych”bogatyzbir
funkcjiioperatorwwspieranytoolbox’ami”otwartaarchitektura:moliwotworzenia
wasnychfunkcji”otwartaarchitektura:moliwotworzeniawasnychfunkcji”bo-
gatyzbirgotowychfunkcjigraficznych”dostpdoobiektwgraficznychpoprzez
uchwyty
Natomiastwady:”jesttostosunkowodrogieoprogramowanie”powolnare-
alizacjaptliiinstrukcjiwarunkowych,zwizanaztymijezykjest”ustawiony”
nadziaanianamacierzach”stworzoneaplikacjepracujjedyniewMATLABie,
odbiorcaoprogramowaniamusigoposiada,lubposiadaodpowiedniejegobib-
lioteki”swobodnydostpdokodu
PakietynarzdziowePakietMatlabskadasizprogramupodstawowegooraz
dodatkowych(zakupionychwzalenociodpotrzeb)programwpomocniczych,
zawierajcychzestawyspecyficznychfunkcji.
DSP-BlockSet
DSP-BlockSet,ktryumoliwiaprojektowaniesymulacjizzakresucyfrowego
przetwarzaniasygnawzapomocsymboligraficznychukadanychwschemat
blokowy.Naleyjednakpamita,iuytkownikmusizadbaopodanieodpowiednich
parametrwdlawszystkichelementwschematu,poniewajesttojedynierodzaj
graficznej”nakadki”
PakietsymulacjiSimulinkSimulinkjestpakietemsluzacymdomodelowa-
nia,symulacjiianalizyukladowdynamicznych.Pomagawrozwiazywaniuuk-
ladowliniowychjakinieliniowych,ciaglychidyskretnych.Simulinkdostarcza
graficznyinterfejsuzytkownikaumozliwiajacykonstruowaniemodeliwpostaci
diagramowblokowychjedynieprzyuzyciumyszki.Dziekitemumoznaszki-
cowacmodelmyszadokladnietak,jakbysmygoszkicowalinakartce.Pozdefin-
iowaniumodelu,moznarozpoczacsymulacje,wybierajacjednazdostepnychw
Simulinkmetod,badztezwpisujacodpowiedniekomendywliniipolecenwok-
ienkuMatlaba.Simulinkudostepnianarzedziapozwalajacesledzicwynikijuz
wtrakciesymulacjimodelu.Istniejarownieznarzedziapozwalajacenazmiane
wybranychparametrowmodeluinatychmiastowesprawdzeniewplywutejzmi-
anynabadanyproces.Dlacelowwizualizacjiipostprocessinguwynikisymulacji
moznaprzetwarzaczapomocanarzedzizinnychpakietowMatlaba.Poniewaz
MatlabiSimulinksazintegrowane,moznaprzeprowadzacsymulacje,analizowac
isledzicewolucjemodeluwkazdymztychsrodowisk,wdowolnymmomencie.
SymbolictoolboxImageProcessingToolboxzawieraspecjalizowaneproce-
durykomputerowejanalizyiprzetwarzaniaobrazow.
SignalprocessingtoolboxSignalProcessingToolboxoferujezestawnarzedzi
umozliwiajacychprzetwazaniesygnalow,poczawszyodgenerowaniafal,poprzez
projektowanieiwdrazaniefiltrow,modelowanieparametryczne,askonczywszy
naanaliziespektralnej.
StatistictoolboxStatisticToolboxjestuzytecznywrozwiazywaniuszerokiej
gamyzadanstatystycznych,poczawszydogenerowanialiczblosowych,poprzez
dopasowywaniekrzywych,projektowanieeksperymentowstatystycznych,askon-
czywszynasterowaniuprocesamistatystycznymi.
Symbolixtoolbox
SymbolicMathToolboxzawieraefektywnealgorytmymanipulacjinawyrazeni-
achsymbolicznych.Pozwalanarozniczkowanieicalkowaniesymboliczne,pod-
stawianie,rozwijanieiupraszczaniewyrazen,dzialanianaszeregachformalnych,
symbolicznerozwiazywanierownanalgebraicznychirozniczkowych,udostepnia
algorytmykombinatoryczneiwieleinnych.
WybraneelementysyntaktykipakietuMatlab
Liczbymogbyzapisywanejakodziesitne-zkropkwroliprzecinka,natomi-
astwywietlanesznarzuconprecyzj,zazwyczajzdokadnoci4cyfrznaczcychpo
przecinku.Wprzypadku,gdyliczbajestmaa,stosowanyjestmnonikwpostaci
”10doodpowiedniejujemnejpotgi”,np.:3.5600e-4.Format(sposb)wywiet-
lanialiczbmonazmieniazapomockomendyformat.Naleyjednakpamita,i
kadyzformatwmaswojezaletyiwady,zatemnaleyjedobieratak,bynajlepiej
odpowiadaynaszympotrzebom-np.dokadnewywietlanieliczbumoliwiaich
lepszeporwnaniewprzypadkukilkuliczb,jednaknaekraniekomputeramoe
siwtedyzmiecimniejliczbjednoczenie,zatemtrudniejnambdzieoszacowa
np.rozmieszczeniezerwjakiejmacierzy.Zmiennetraktowanesjakmacierzeo
okrelonychwymiarach,czyliilociwierszyikolumn.Pojedynczaliczba-skalar
-jestmacierzowymiarach1x1.Kadyelementmacierzymoebyokrelanyza
pomocjegowsprzdnychwmacierzy,czyliindeksw.Przykadowojeelimamy
macierzonazwieAiwymiarach3x4,tojejelementwdrugimwierszuitrze-
ciejkolumniemoebywskazanyjako:A(2,3).Bardzoprzydatnyjestoperator
”:”(dwukropek),ktrywprzypadkuzapisu:2:6powoduje,izapistenoznacza
cigliczbnaturalnychod2do6.Operator”:”moebytakestosowanyzpo-
daniemkroku,np.:0.9:-0.2:0,coodpowiadazapisowicigu0.9,0.7,0.5,0.3,0.1
(celowopokazano,jakinterpretowanejestpodaniewartocikoczcejcigtak,i
nieodpowiadaostatniemuelementowicigu)-istniejetakeinnezastosowanie
tegosymbolu,oczymbdziemowaprzyopisiemacierzy;Naleypamita,ein-
deksyelementwmacierzyzawszerozpoczynajsiod”1”(anieod”0”),iemusz
bycakowite.Uwaga(!!!)-niewolnomylizapisuxyz(1:3)oznaczajcegopier-
wszetrzyelementywektoraxyzzzapisemxyz(1,3),ktryoznaczaelementz
pierwszegowierszaitrzeciejkolumnyzmiennejxyz,ktramusibywtymprzy-
padkumacierz(zconajmniejtrzemakolumnami)lubwektoremwierszowym.
Przykady:Alfa(2:3,3:-1:1)-oznaczafragmentmacierzyAlfazawierajcydrugii
trzeciwierszorazkolumnyod1do3alewodwrconejkolejnoci;macierzAlfa
musibynaturalnienatyledua,bytakieelementyzawiera.X(4:-1:1)=Alfa(3,1:4)
-oznaczaprzypisanieelementomwektorawierszowego(czylimacierzyskadajcej
sizjednegowiersza)wodwrotnejkolejnocipierwszychczterechelementwtrze-
ciegowierszamacierzyAlfa.v(5:-1:1)=v-jeelivbywektorem5-elementowym,
tozapistakispowodujeodwrceniekolejnocielementwtegowektora,gdybywek-
tormiainnliczbelementwprogramzasygnalizujebd.v=v(5:-1:1)-wybieramy
pierwszepielementwwektorav,ktrewodwrconejkolejnocitworznowywektor
v.Jeeliwektortenbyduszy,topopodstawieniupozostaeelementyzostaj
utracone.
Zmiennychniedefiniujesiprzeduyciem,powstajonewwynikuuyciaopera-
toraprzypisania”=”(znakrwnoci).Przykadowo: >> x5=3; >> Alfa12=125.64;
>> deltax=15:0.1:-15;
Naturalniepoprawejstronieoperatoraprzypisaniamogznalesijedynieist-
niejcezmienne-tj.stworzoneprzeznaswdanejsesji,przywoanezplikulub
predefiniowane(jaknp.pilubj).Zmiennemuszmienazwyrozpoczynajcesi
odliter.Wnazwachliterydueimaesrozrniane-zatemnp.xalfaorazXalfa
todwiernezmienne.Nazwymogzawieracyfry,atakesymbolpodkrelenia,
jednaknienapierwszejpozycji.Zmiennesusuwanezpamicioperacyjnejpo
zamkniciupakietuMatlablubpozastosowaniukomendyclear.Komendaclear
bezpodanianazwyzmiennejpowodujeusuniciezpamiciwszystkichzmiennych
uytkownikapowstaychwdanejsesji.Chccusunzmienneonazwachx,Alfa,wek-
tor1stosujemykomendpodajcnazwyzmiennychoddzielonespacj: >> clearx
Alfawektor1%przykaduyciakomendyclearWpowyszymprzykadzieznak
>> ”oznaczatzw.znakzachty,oznaczajcygotowopakietunaprzyjciekole-
jnejkomendy,natomiastznak”%”wdanejliniipowoduje,inastpujcyponim
fragmentliniitraktowanyjestjakokomentarz.Wykonaniedanejkomendynast-
pujepopodaniuzklawiaturyznaku[Enter].Zatemwykreowanienp.wektora
5elementowegoowartociachod3do7nastpiponastpujcejkomendzie: >>
x5=3:7;[Enter]Wartozwrciuwagnaznak”;”(rednik),ktrynakocukomendy
oznacza,iniechcemy,bywynikjejwykonaniazostawywietlonynaekranie
komputera.Niekiedychcemysiupewni,cobdziewynikiemdanejkomendyi
znaktenpomijamy,jednakwprzypadkuoperacjiwykonywanejnazmiennej
duychrozmiarwpomijanieznaku”;”jestraczejmaouyteczne.Wdalszych
przykadachakceptacjakomendyklawiszem[Enter]bdzietraktowanadomylnie,
zatemniebdziewypisywana.Dopkiniepodamyznakuakceptacji([Enter])
linikomendymonaedytowakorzystajczklawiszypoziomegoruchukursora,
kasowaniaitp.Klawiszepionowegoruchukursoraumoliwiajprzywoywaniew
liniibiecoedytowanejkomendypoprzednichkomendzapamitanychwbuforze,
35632469.001.png
 
ktremonaodpowiedniozmodyfikowa(lubpozostawiwstaniepierwotnym)i
ponowniezaakceptowadowykonania.Pouruchomieniupakietuwpamiciznaj-
dujsiwytworzonewstpniezmienneonazwach:pi,i,j.Pierwszaznichtoliczba
pi,akolejnetodwieidentycznezmiennezawierajcejednostkurojon-dlaliczb
zespolonych).Jeelijednakpodamykomend,np.: >> pi=4:-1:1;tozmienna
pistaniesi4-elementowymwektoremzawierajcymliczbyod4do1(zkrokiem
minus1),apoprzedniazawartozmiennejzostanie(chwilowo)utracona.Wtaki
samsposbmonazastpowatakeinnezmienne,tworzcjenanowozapomocop-
eratoraprzypisania.Zmiennaanszawierazawszewynikioperacjiktramoeby
uytapoprawejstronieoperatoraprzypisania,aktrejuyjemybeztegoopera-
tora.Kadekolejnezapenienietejzmiennejpowodujelikwidacjjejpoprzedniej
zawartoci.Przykadowo.podajckolejnodwiekomendyuzyskamynastpujcy
wynik: >> 3:-0.1:-2;%zmiennaansbdziezawieraawektorwyspecyfikowanych
wartoci >> 3%zmiennaansstaniesiskalaremowartoci”3”
Zmienntmonawykorzystywawpniejszychoperacjachtaksamojakinne
zmienne-naleyjednakprzytymuwaa,czyzmiennaanszawieratakiedane,
jakichsiwniejspodziewamy,poniewabardzoatwomonajniechccy”nadpisa”.
Funkcjewhoorazwhosumoliwiajnp.sprawdzenie,jakienazwyzmiennychs
juwykorzystane.Funkcjawhospozwalatakenasprawdzeniewymiarumacierzy
-np.wcelusprawdzeniadlaczegoMatlabniewykonujepodanegopolecenia
(przyczynmoebyniezgodnowymiarwmacierzy).Dopodobnychcelwmoe
suyfunkcjasize.Parametrywyliczaneprzezfunkcjesizeorazlengthmogby
wykorzystanewpniejszychobliczeniach.
Wartopodkrelirnicepomidzynp.funkcjhelpisize.Wprzypadkufunkcji
helpparametr(czyliwtymprzypadkunazwfunkcjilubsowakluczowego)poda-
jemypospacji,beznawiasw,np.: >> helpfunction >> helpsinFunkcjatanie
zwracatakeadnegoparametru.Zkoleifunkcjasizezwracawektorwierszowy,
aponadtoparametrwpostacinazwyzmiennejpodajesiwnawiasachokrgych
(spacjaoddzielajcasowosizeodlewegonawiasujesttuwprawdziemoliwa,ale
raczejutrudniaodczytywanietakiegozapisuidlategonienaleyjejstosowa).
Przykadowo:
>> M=size(Atest)%odczytujemywektordwchliczb:wierszyikolumnalbo
>> size(Atest)%wynik-czylidwuelementowywektorwierszowy-wzmiennej
ans
Zawszenaleyzatemzwrciuwag,jaknaleyposugiwasiwywoaniemdanej
funkcji-przykadyzapewniafunkcjahelp.
Wprzypadkuniezgodnociwymiarwmacierzypodanychjakooperandwdla
danegooperatoraoperacjaniejestrealizowana,aprogramsygnalizujebd(warto
wtedyzrozumiekomunikatobdziewjzykuangielskim...).Poniszyprzykad
tworzeniamacierzyAtestdemonstruje,wjakisposbdefiniujemymacierze(lub
wektory)posugujcsinawiasamikwadratowymiorazseparatoramiwierszy-
przecinkami-iseparatoramikolumn-rednikami: >> Atest=[3,3,3;1,2,5;3:-
1:1];%Atesttomacierz3x3,pierwszywiersztotrzy”3” >> Btest=Atestˆ2;%
BtestjestmacierzAtestpodniesiondokwadratu. >> Ctest=Atest.ˆ2;%kady
zelementwCtestjestodpowiednimelementem%macierzyAtestpodniesionym
dokwadratu.Funkcjedotworzeniamacierzy(iwektorw)
Zgłoś jeśli naruszono regulamin