8
MATLAB SBN 1999-01-16 matlab_intro.doc 1(8) Denna introduktion till programsystemet MATLAB är tänkt att ge en första anvisning om handhavandet av dess olika delar. Det blir alltså inga djupgående exempel på vad programmet kan prestera utan en genomgång av grundläggande kommandon för inmatning, bearbetning och presentation av data. MATLAB är en förkortning av Matrix Laboratory, vilket ger en fingervisning om att programmet arbetar med matriser, all inmatning av variabelvärden sker i matrisform. : x = är en matris med två rader och tre kolumner. En matris med endast en rad eller en kolumn, betraktas normalt som en vektor och en matris med endast ett element betraktas som en skalär. Man arbetar i ett kommandofönster som påminner om den gamla hederliga DOS-miljön. Från kommandoraden kan man också starta diverse tilläggsprogram, för exempelvis plottning av grafer och simulering av regler-, elektronik- och elkraftsystem. Välj Links i startmenyn och dubbelklicka på Matematik-mappen. Dubbelklicka därefter på MATLAB 5 - ikonen. Tecknen >> innebär att MATLAB är redo att ta emot kommandon. >> x = [1 2 3; 2 5 4]; % Hakparenteser används för inmatning, värdena avgränsas med mellanslag eller kommatecken, matrisrader med semikolon. Procenttecknet ger möjlighet att lägga in kommentarer såsom denna. Om det sista semikolonet utelämnas, kommer MATLAB att skriva ut matrisen som ett resultat av inmatningen. >> x.^2 % MATLAB kommer att skriva ut en matris där varje element har kvadrerats. Lägg märke till punkten, som gör att operationen utförs elementvis. 1 2 3 2 5 4

MATLAB SBN 1999-01-16130.243.105.49/~tdt/ann/docs/matlab_intro.pdfMATLAB är en förkortning av Matrix Laboratory, vilket ger en fingervisning om att programmet arbetar med matriser,

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MATLAB SBN 1999-01-16130.243.105.49/~tdt/ann/docs/matlab_intro.pdfMATLAB är en förkortning av Matrix Laboratory, vilket ger en fingervisning om att programmet arbetar med matriser,

������������� ����������MATLAB SBN 1999-01-16

matlab_intro.doc 1(8)

�����������������

Denna introduktion till programsystemet MATLAB är tänkt att ge en första anvisning omhandhavandet av dess olika delar. Det blir alltså inga djupgående exempel på vad programmetkan prestera utan en genomgång av grundläggande kommandon för inmatning, bearbetningoch presentation av data.

MATLAB är en förkortning av Matrix Laboratory, vilket ger en fingervisning om attprogrammet arbetar med matriser, all inmatning av variabelvärden sker i matrisform.

"!$#&%(')#&*: x = är en matris med två rader och tre kolumner. En matris med endast

en rad eller en kolumn, betraktas normalt som en vektor och en matris med endast ett elementbetraktas som en skalär.

Man arbetar i ett kommandofönster som påminner om den gamla hederliga DOS-miljön. Frånkommandoraden kan man också starta diverse tilläggsprogram, för exempelvis plottning avgrafer och simulering av regler-, elektronik- och elkraftsystem.

+�,.-0/1,�-�243�/15�67/8-09:9<;�,

Välj Links i startmenyn och dubbelklicka på Matematik-mappen. Dubbelklicka därefter påMATLAB 5 - ikonen.

=�>�?�@�A0B0>CA�@D@�E�@GF:HC@0?

Tecknen >> innebär att MATLAB är redo att ta emot kommandon.

I"JLK

>> x = [1 2 3; 2 5 4]; % Hakparenteser används för inmatning, värdena avgränsas medmellanslag eller kommatecken, matrisrader med semikolon.Procenttecknet ger möjlighet att lägga in kommentarer såsomdenna. Om det sista semikolonet utelämnas, kommer MATLAB attskriva ut matrisen som ett resultat av inmatningen.

>> x.^2 % MATLAB kommer att skriva ut en matris där varje element harkvadrerats. Lägg märke till punkten, som gör att operationen utförselementvis.

1 2 32 5 4

Page 2: MATLAB SBN 1999-01-16130.243.105.49/~tdt/ann/docs/matlab_intro.pdfMATLAB är en förkortning av Matrix Laboratory, vilket ger en fingervisning om att programmet arbetar med matriser,

M�N�O�P�Q�N�R�S T�R�U�R�V�R�WMATLAB SBN 1999-01-16

matlab_intro.doc 2(8)

X"Y[Z

>> x = [-2:0.1:2]; % x är nu en enradig matris (vektor) med värdena -2.0, -1.9, -1.8, ...2.0 . Lägg märke till decimalpunkten!

>> y = 2 * x.^2 - 2.5; % y är nu en vektor med lika många element som x och medvärden enligt polynomet.

>> plot (x,y) % Startar graf-programmet och ritar upp grafen för y = f(x).

\^]�_0`Ca�b�_�`�ced�fhg7`Ci0]

Allmänna kommandon>> who % listar de variabler som använts under arbetspasset>> dir % listar de m-filer som finns i aktuell katalog (se nedan)

Enkla redigeringstips

• Med piltangenterna kan ”gamla” kommandon bläddras fram och användas igen eftereventuell justering.

• Kommandotext som finns kvar i fönstret kan markeras och därefter kopieras och klistras inpå den aktuella kommandoraden.

InmatningNågra olika exempel på inmatningar:

>> x = [1.1 1.2 1.3];>> x = [2.3e-6:0.1e-6:8.5e-6];>> x = [-10:10]; % ger x = -10, -9, -8, ... 10>> x = [ ]; for i = 1: 5, x = [x i^2], end % ger x = 1 4 9 16 25

Observera att om x = [2 3 4 5 6] så ger x (2) värdet 3 och x (5: -1: 1) värdena 6 5 4 3 2.

Inbyggda funktionerFöljande funktioner opererar ”elementvis” :

sin, cos, tan, exp, log, rem (rest vid div), abs, sqrt (roten ur), floor (heltalsdelen), round(avrundning)

Page 3: MATLAB SBN 1999-01-16130.243.105.49/~tdt/ann/docs/matlab_intro.pdfMATLAB är en förkortning av Matrix Laboratory, vilket ger en fingervisning om att programmet arbetar med matriser,

j�k�l�m�n�k�o�p q�o�r�o�s�o�tMATLAB SBN 1999-01-16

matlab_intro.doc 3(8)

u"v$w&x(y)w&z:

>> x = [0:0.1:2*pi];>> y = sin (x);>> plot (x,y) % Ritar en period av sinuskurvan.

Följande funktioner opererar på hela matriser:

max, min, sort, sum, prod, mean, any, all, det (determinanten)

Exempel:>> A = [1 2; 3 4];>> max (A) % ger 3 4>> max (max (A)) % ger 4

Plottning av grafer

Användning av kommandot plot har beskrivits ovan. Det finns också ett kommando fplot,som fungerar något annorlunda, exempel:

>> fplot (‘sin(x)’ , [0 4*pi]) % Plottar grafen i angivet intervall

(I sammanhanget kan även kommandot fmin (resp. fmax) nämnas, exempel:>> fmin (‘sin(x)’ , -1, 1) % Ger x-koord. för funktionens minsta värde i intervallet.)

För redigering av diagramytan kan följande kommandon användas:

>> grid % Lägger in ett rutnät i diagrammet.>> title ‘Rubrik’ % Skapar diagramrubrik.>> xlabel ‘x-axel’ % Rubrik för x-axeln.>> ylabel ‘ y-axel’ % Rubrik för y-axeln.>> gtext ‘Kommentar’ % Texten placeras med musen efter att kommandot givits.

>> c = [xmin; xmax; ymin; ymax];>> axis (c) % Anger max- och min-värden för respektive axel.

>> axis auto % Återställer.

>> hold on % ”Fryser” diagrammet så att ytterligare grafer kan plottas isamma diagram.

Page 4: MATLAB SBN 1999-01-16130.243.105.49/~tdt/ann/docs/matlab_intro.pdfMATLAB är en förkortning av Matrix Laboratory, vilket ger en fingervisning om att programmet arbetar med matriser,

{�|�}�~���|���� �������������MATLAB SBN 1999-01-16

matlab_intro.doc 4(8)

För att kunna särskilja grafer i ett diagram kan dessa ”märkas” på följande sätt:

>> plot (x, y, ‘ --’ ) ger streckad graf>> plot (x, y, ':') ger punkt-graf>> plot (x, y, '-.') ger punktstreckad graf>> plot (x, y, '+') ger + märkta nodmarkeringar

+ kan ersättas med * , o eller x

Med kommandot �8�)�)�����$� kan man dela in diagramfönstret i flera delar och rita en graf i varjedelfönster.

3D-plot

Tredimensionella grafer skapas genom att först definiera ett "bottenplan" och därefter angehur "taket" ska se ut. Arbetsgången visas med ett exempel:

>> xx = -2 : .1 : 2 ;>> yy = xx ;>> [x, y] = meshgrid (xx, yy) ; % ger "bottenplanet">> z = exp ( - x .^2 - y .^2) ;>> mesh (z)

Testa gärna!

�^�8�������0�

Med hjälp av s k m-filer (filtillägg .m) kan man spara viktiga delar av "arbetspassen". Detfinns två typer av m-filer, �8���&���)�e������ �� och ¡£¢)¤)¥&¦�§�¨$¤©¡£§�ª�«&¬ . I scripten sparar man körningar somman tror kan vara användbara senare. I funktionsfiler kan man skapa egna funktioner, som gåratt använda på samma sätt som de inbyggda.

Filerna ska sparas i en mapp med namnet MATLAB, som du skapar i din användare, dvssökvägen blir ­¯®±°³²�´¶µ¸·0°³­º¹¼»�½�¹$¾ .

Script filesDet smidigaste sättet att skapa dessa är att ge kommandot ¿�À�Á$Â�ÃÅÄ£À�Æ�Ç)Á$È(Ç)ÉÊÈ , vilken startarinmatning till angiven fil. Därefter gör man själva körningen och avslutar med Ë�Ì�Í$Î�ÏÅÐ$Ñ£Ñ .Filen sparas automatiskt i mappen ovan.

Function filesDet finns en inbyggd editor som lämpligen bör användas för att skriva funktionsfilerna. Denstartas med kommandot Ò&Ó)Ô�Õ .

Page 5: MATLAB SBN 1999-01-16130.243.105.49/~tdt/ann/docs/matlab_intro.pdfMATLAB är en förkortning av Matrix Laboratory, vilket ger en fingervisning om att programmet arbetar med matriser,

Ö�×�Ø�Ù�Ú�×�Û�Ü Ý�Û�Þ�Û�ß�Û�àMATLAB SBN 1999-01-16

matlab_intro.doc 5(8)

á"â$ã&ä(å)ã&æ³ç

èêé$ë$ì�í�î�ï$ëñðóò¶ôõï$ö ð÷ë$ï$ø¶ùûú�ü�ýðþò ÿ�� ü � ����� ù

Filen sparas som � ���� ��������� . Namnet måste vara identiskt med det som angavs före (x).

Funktionen används enligt:

>> x = -2 : 0.1 : 3 ;>> y = polynom1(x)>> plot(x,y)

������� � !"�$#&%�')(*#,+,+.-0/"� 1

Grafer överförs enklast (men inte med så god kvalitet) genom att välja 243�576�8:9�;<>=@?A57BC�DFE ifigurfönstret. Först bör man dock ändra i dialogrutan GAH7I7JLK:MAN*JFO&J*NFJFP�QFJFR,KTSVUW>X HYP Z\["W�]&H7UP�R till^`_7a�b�cedgf�h4_Yi&j@kl�l

. Det brukar ge bättre kvalitet. Grafen läggs därefter in i Worddokumentetmed m"nYo7p q,rFs\o7t (Ctrl+V).

Önskas bättre kvalitet kan man ge något av kommandona:

>> print -dtiff M:\PCSA\Matlab\filnamn.tif

eller

>> print -deps M:\PCSA\Matlab\filnamn.ps

I första fallet skapas en bildfil som sedan kan infogas i Worddokumentet med u v�wTxyz|{}�~7�7� x�>���|� ��{A�A�F�v�w ~Y� …I andra fallet skapas en s k postscriptfil som antingen kan skickasdirekt till skrivare eller vidarebehandlas i exempelvis programmet ��� ������ �7�L� .

Page 6: MATLAB SBN 1999-01-16130.243.105.49/~tdt/ann/docs/matlab_intro.pdfMATLAB är en förkortning av Matrix Laboratory, vilket ger en fingervisning om att programmet arbetar med matriser,

�A���7���L���$�e���$���$� ��¡MATLAB SBN 1999-01-16

matlab_intro.doc 6(8)

¢¤£,¥)¦¨§,£,©¨ª

Simulink är ett tilläggsprogram för simulering och analys av dynamiska system, i första handav teknisk natur. I en grafisk miljö kan man bygga upp exempelvis ett reglersystem och testadess funktion genom att ändra ingående variabler och därefter studera den uppkomnautsignalen.

ExempelFör att få en inblick i hur programmet är uppbyggt, går vi igenom ett enkelt exempel: Imodellen ska en sinusvåg integreras och visas på ett oscilloskop tillsammans med denursprungliga signalen.

Programmet startas från MATLAB, antingen med en knapp eller med kommandot « ¬Y­¯®�°7¬Y± ² .Då visas två fönster, ett som utgör arbetsytan och ett som innehåller biblioteken med de olikasymbolerna:

Vi dubbelklickar på ³�´µ�¶F·*¸F¹ och får upp följande fönster:

Symbolerna kan dras från biblioteksfönstret till arbetsfönstret.Inställningar för respektive signalkälla kan göras genom attdubbelklicka på symbolen.

På motsvarande sätt infogas övriga symboler från bibliotekenº�»7¼�½�¾ (Scope), ¿�À7Á�ÂFÃÄ (Integrator) och Å�ÆÇ�Ç�ÈFÉFÊ&ËYÆÇ�Ì (Mux =

multiplexer). Den sistnämnda modulen fungerar som entelefonväxel och är till för att oscilloskopet ska kunna visa flerakurvor. Dubbelklicka på den för att minska antalet ingångar till2 st.

Förbindelser mellan modulerna åstadkommes med hjälp av muspekaren genom "klicka ochdrag" -teknik. För att erhålla en förgreningspunkt på en ledning håller man nere ÍVÎ,ÏFÐ -tangenten samtidigt som man pekar på ledningen och trycker ner musknappen.

Page 7: MATLAB SBN 1999-01-16130.243.105.49/~tdt/ann/docs/matlab_intro.pdfMATLAB är en förkortning av Matrix Laboratory, vilket ger en fingervisning om att programmet arbetar med matriser,

ÑAÒ�Ó7Ô�ÕLÒ�Ö$×eØ�Ö$Ù�Ö$Ú Ö�ÛMATLAB SBN 1999-01-16

matlab_intro.doc 7(8)

Schemat bör nu se ut så här:

Före simulering bör man kontrollera och eventuellt ändra vissa parametrar iÜ�Ý7Þ@ß�à7áâ&ÝYãä>å:æAáçFáèÞ¯é|â&é*çFê. Grundinställning för simuleringstiden är 10 sekunder, vilket går att

ändra här. Dessutom kan man få en tätare plottning av kurvorna genom att ändra påinställningarna för ë ìTí|î@ëðïòñèí . I ó�ôõòö ÷Føúù"û�ü&ý7ôþ�ÿ kan man ange en annan simuleringstyp än denföreslagna, vilken dock brukar fungera bra.

Dubbelklicka på Scope för att få upp visningsfönstret. Simuleringen startas med������������� �����������.

Kurvorna kan skrivas ut direkt med printer genom att klicka på printerknappen.

Page 8: MATLAB SBN 1999-01-16130.243.105.49/~tdt/ann/docs/matlab_intro.pdfMATLAB är en förkortning av Matrix Laboratory, vilket ger en fingervisning om att programmet arbetar med matriser,

��������������� ����!"��#$�"%MATLAB SBN 1999-01-16

matlab_intro.doc 8(8)

&('*),+.-./0+21436587�149:9<;>=0+@?

Här beskrivs två olika metoder för att överföra graferna till exempelvis Word.

• Se till att visningsfönstret är aktivt, tryck på ACBED�FHG�I�J�K�DHLNMOI�K för att lägga bilden i Urklipp.Starta programmet PRQNS T�UWVRX�Y[Z�V�X�Y\]X�^]_a` bcS T�UWT�XOd4e och klistra in ( f�g]h.ikj ) bilden där.Markera önskat område och välj lnm�o�prq�s,t�uv . Välj också wyx2z4{|�}�~����,x���]z����Nx för att bli avmed den svarta bakgrunden. En något skarpare bild åstadkommes med �y�2�4����������.����]������ ���2���:��������������Spara bilden med formatet ���4��� och infoga den därefter i Worddokumentet.

• Resultatet av simuleringen kan också överföras till MATLAB för bearbetning med �� �¡¢ -kommandot:

I visningsfönstret, klicka på knappen Properties och markera Save data to Workspace samtange ett variabelnamn ( ex.vis A). Kör simuleringen. Om fönstret innehåller endast engraf, kommer A att bli en matris med två kolumner, en med x-värden och en med y-värden. Den kan plottas med detta kommando:

>>plot ( A( : , 1) , A ( : , 2) )

För att sedan skapa en tif-fil används kommandot:

>>print -dtiff M:\PCSA\MatLab\filnamn.tif

Eller för att skapa en encapsulated postscript fil

>>print –deps m:\pcsa\matlab\filnamn.eps

Foga sedan in som bild i Word. Word kan dock inte visa en eps-bild direkt utan måstemåste skrivas ut på en postscript skrivare för att kunna ses. Alla skrivare på skolan ärpostscript-skrivare. Ett annat alternativ är att skriva ut till fil med en drivrutin till enpostscriptskrivare, tex HP 5M PS, och titta på filen i ghostview.