matlab - kth · hålla data i matris eller list form. användaren kan inte definiera egna. har...

Post on 06-Mar-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

AlltdubehövervetaomMATLAB:•Industristandardförnumeriskaberäkningarochsimulationer.•Användssomettstegiutvecklingen(rapidprototyping)•Harettsyntax…

¡ Ettteleskopordför«matrixlaboratory»¡ UtveckladessomsubstitutförFortran+LINPACKislutetav70‐talet.

¡ Imittenav80‐taletstartadesTheMathWorks.

¡ MATLABanvändsnuavalla+hunden.

¡ MATLABharenendapositivegenskap–detärlättatttestaenidésnabbt.

¡ LösningariMATLABäroftamycketlångsammareänmotsvarandespecialdesignadelösningar.

¡ Bättreidag?

¡ DetfinnsfleraandraprogramsomliknarMATLAB.Sage,Octave,Mapleoch...

MATLAB PythonHarenkladatastrukturerlämpadeföratthålladataimatrisellerlistform.Användarenkanintedefinieraegna.

Harkomplexadatastrukturer.Användarenkandefinieraegnatyper.

KräverattMATLABärinstalleradpådatornförattköraskrivenkod.Kanintekompilerastillmaskinkod,pgalicenser.

Kräverattpython‐tolkärinstalleradpådatorn.Kanivissafallkompilerastillmaskinkod.

Hardevanligastematematiskafunktioner,demeravanceradeochdesomanvändsaldrig.Harplot‐funktion.

Harelementäramattematiskafunktioner.

Kostar.MenNikanladdanergratisfrånskolanshemsida….Ochpiratebay.Yarr.

Gratis.

¡ Öppnaterminalen.¡ Inkluderasenastematlab(engång)>module add matlab/r2007b>module initadd matlab/r2007b

¡ StartaMATLAB>matlab &

¡ MankananvändaMATLABsomendyrminiräknare.

¡ Devanligasteoperatorernafinns:+ - * / .* ./ \< > ==

¡ Observeraattoperatorernaärtypspecifika.¡ Massoravinbyggdafunktioner,t.ex. what, who, clear, clc, clf why, tic, toc, quit, disp

¡ Massoravinbyggdamatte‐funktioner,som sin, cos, atan, exp, pow, mod

¡ Inbyggdakonstanter: i, pi, true, false

¡ Medkommandotformat mankanändrahurutskriftenserut.

¡ Denviktigastefunktionenavalla>>help

¡ Provaskriva>>help matlab\general>>help syntax>>help matlab\matfun

¡ doc görsammasomhelp ,menöppnarettnyttfönster.

¡ Variablerdeklarerasmedhjälpav=operatorn.

¡ PrecissomiPython.¡ SynligaiWorkspace.

¡ Förattfåettkommandoattinteskrivautnågotpåskärmen,använd;

¡ Villintesemellansteg.¡ Visaresultatetmeddisp.¡ Vissafunktionerbehöverinteavslutasmed”;”,mengördetändå.

¡ JämförCommandWindowmedPythonsInteractiveShell.

¡ Villskrivastörrekodi.m filer,påsammasättsomPython‐programi.py filer.

¡ AnvändEditor.

¡ Brakodärvälkommenteradkod.¡ Tvåsättattgörakommentarerpåideninbyggdaeditorn.

¡ % <text>¡ %% <text> Nytt!

¡ Finnstvåtyper–vanligaochanonyma.¡ Deklareraenvanligfunktiongenomattskapaen.mfil,medföljandeöverst:function [out1, out2, …] =<namn>(in1, in2, …)

¡ Deklareraenanonymfunktionsomettkommando:<namn> = @(in1, in2) <kropp>;minfunktion = @(x) sin(x);

¡ Funktionersomintetarparametraranropasävenutantommaparenteser.AnnarssomiPython.

¡ Vektorerärlistoravelement*,ochenanvändbarmatematiskstruktur.

¡ IMATLABfinnsbaralistoravenklatyper–heltal,flyttal,komplexatal.

¡ Deklareraenlistamedhakparanteser,somiPython.Separeraelementmedkommaellermellanslag.>> lista = [1, 2, 3, 4];>> listb = [4 5 6 7];

¡ range() skaparföljdlistoriPython.IMATLABärsyntaxen:

¡ >> a = 1:3; skaparlistan[1,2,3]¡ >> b = 1:0.3:5; skaparlistan[1, 1+0.3, 1+2*0.3, … , 4.9]

¡ Matematiskalistorärorienterade.Förattändrapåorienteringenanvänderman”’”>> b = b’;

¡ IPythonärallaindexnoll‐baserade,d.v.s.detförstaelementetharindex0,ochmanskriver>>>a=[1,2,3]>>>print a[0]1

¡ IMATLABärallaindex1‐baserade,somimatematiken.Förstaelementetharindex1.>>a = 1:3;>>disp( a(1) ); 1>>

¡ Fåutlängdenpålistanmedfunktionenlength>> length(a)ans =

3

¡ DeinbyggdafunktionernaiMATLABtrådarsigoftastautomatiskt.Detbetyderattfunktionenappliceraspåvarjeelementienlista.

¡ f([1,2,3])=[f(1),f(2),f(3)]förmångaf.¡ >> format compact>> lista = 0:pi/4:2*pilista =0 0.7854 1.5708 2.3562 3.14163.9270 4.7124 5.4978 6.2832>> sin( lista )ans =0 0.7071 1.0000 0.7071 0.0000-0.7071 -1.0000 -0.7071 -0.0000>>

¡ Ommanhartvålistorochvillmultiplicerademmedvarandra,vadmenarmandå?

¡ Mankanmenamatrismultiplikation(vektorskalärprodukt)–>> [1,2,3]*[3,4,5]’ans = 26

¡ Mankanocksåmenaattelementenmultiplicerasparvis.Dåharman.*operatorn.>> [1,2,3].*[3,4,5]ans = 3 8 15

¡ Enligtmatrisräkneregler+och–utförsparvissommanförväntarsig,men* / ^ ochandraoperatorerharenannanbetydelse.

¡ Förattskrivaennumeriskalgoritmbehövervioftaflödeskontroll,dvsif‐,while‐,ochforsatser.

¡ IPythonhadeviindentering.IMATLABharviend‐satsen.

¡ IfsatsenharföljandesyntaxiMATLAB.if <test>

<kropp>elseif <test>

<kropp>elseif <test>

<kropp>...else

<kropp>end

¡ Testskavaranågotsomärsantellerfalskt.¡ Kroppärnollellerflerkommandon.

¡ WhilesatsenfungerarprecissomiPython,exekverarsinkropptillsnågotharändrats.DenharföljandesyntaxiMATLAB:while<test>

<kropp>end

¡ Forsatsenbehöverenvektor(lista)förattfungera.Syntaxenär:for <var> = <list><kropp>

end¡ Variabeln<var> antarvärdenilistan<list> innutikroppen<kropp>enefteren.

¡ Forsatsenärineffektiv,MATLABförsökerskrivaomfor‐loopenpådenrättaformen.

¡ IblandlyckasMATLAB.Iblandinte.¡ Denrättaformenärattanvändainbyggdafunktionensum:>> sum( 1:1000 )

¡ Enmatrisärenmattematisktabell.Givetettekvationssystem,kanviskrivaomdenpåmatrisform.

¡ VikanskrivasammamatrisiMATLABsom>> A = [1 3 -2;3 5 6; 2 4 3];

¡ Ochresultatvektorn,som(noteraorienteringen)>> b = [5 7 8]’;

¡ För att lösa ut x, y och zskriver vi>>A\b

¡ DetfinnstvåsättattkommaåtmatriselementiMATLAB.Definieraföljandematris.

>> A = [1 3 -2; 3 5 6; 2 4 3];¡ Enparameter.A(n)returnerardetn:teelementetiA,somomAvarenlista(vektor)avkolonner(OBS!).>> A(3)ans = 2

¡ Tvåparametrar.A(r,c)returnerarelementetpåradenrochkolumnenc.>> A(2,3)ans = 6

¡ Iställetförattanvändaskalärersomparametrar,kanmanläggainhelalistor.GivetsammamatrisA.>> A = [1 3 -2; 3 5 6; 2 4 3];

¡ OmvivillfåutvartannatelementurAkanviskriva>> A( 1:2:9 )ans = 1 2 5 -2 3

¡ Påsammasättkanmanfåutsubmatriserochsublistor.Experimentera!(Labbuppgift,anywho)

¡ MATLABharenjätteanvändbarfunktionförattgöragrafer.

¡ Förmerinformationomhurmananvänderden,skriv>> help plot

Anyquestions?Mailgleb@kth.se

top related