MATLAB

MATLAB er et programmeringssprog, et programmerings- og simulerings-miljø og en stor samling værktøjer alt i et program. Det er derfor svært at give en samlet introduktion til MATLAB i sin helhed, og de fleste af MATLABs mest brugte funktioner vil slet ikke blive behandlet på denne side. Som programmeringssprog er MATLAB et velegnet begyndersprog, da mange ting er simplere og mere intuitive i MATLAB sammenlignet med sprog som C og Fortran. MATLAB er også fra starten bygget til videnskabelig programmering, med fokus på numeriske beregninger. Det gør at sprogets syntaks minder om matematisk notation, specielt når beregningerne omhandler vektorer og matricer. MATLAB er en forkortelse for "Matrix Laboratory", og det er da også i håndteringen af matricer at MATLAB kommer til sin fulde ret.

MATLAB kommer med indbyggede funktioner til alt fra trigonometri til kunstig intelligens. Hvis man ønsker at løse en ligning analytisk for \(x\) kan det gøres med få linjers kode:

        >> solve('a+b*x + c*x^2')
        
        ans =
         -(b + (b^2 - 4*a*c)^(1/2))/(2*c)
         -(b - (b^2 - 4*a*c)^(1/2))/(2*c)
    
Det samme gælder løsningen af differentialligninger,
        >> dsolve('Dx = -a*x')
        
        ans =
        C2/exp(a*t)
    

En anden forskel fra andre programmeringssprog er muligheden for visualisering. Det er nemt at tegne både plots og histogrammer men også avancerede tre-dimensionelle strukturer. Det gør det nemt at "gå på opdagelse" i ens data, og visualisering er tit det første skridt til forståelse af både teoretiske modeller og eksperimentel data.

Vi har valgt MATLAB som det første programmeringsprog i fysikundervisningen fordi vi mener at det gør at vi kan fokusere på at løse problemer som er spændende for fysikere, frem for at løse datalogiske problemer. MATLAB derudover også brugt til forskning i både København og Århus, og giver derfor et realistisk værktøj som det kan betale sig at blive god til, frem for et legetøj som kun er brugbart i undervisningen!

Grundlæggende MATLAB

Start af MATLAB

MATLAB startes i I Apple OS X enten via LaunchPad, Finder eller ved at benytte spotlight (cmd+space) til at søge efter "MATLAB".
I Microsoft Windows startes MATLAB enten ved at finde MathWorks/MATLAB i startmenuen eller ved at søge efter "MATLAB".
Linux og Unix installationer kan startes fra terminalen ved at skrive "matlab", eller hvis man bruger en Window Manager (Gnome, KDE, etc.) ved at finde MATLAB i programmenuen.

Når MATLAB er startet vil man se flere vinduer, de kan være arrangeret forskelligt alt efter versionen af MATLAB, men der vil altid være et "Command Window" som fungerer som en kommandoprompt hvor man kan indtaste formler og kalde funktioner. Alle kodeeksemplerne på denne side kan som udgangspunkt copy-pastes ind i commando window, hvilket vil køre kode i MATLAB.

Kommandoer

Kommandovinduet kan bruges til at navigere i fil-systemet på din computer, hvis man kender til OS X, Linux og andre UNIX-baserede operativ systemer, vil man genkende kommandoerne:

        >> ls  % List filer og mapper i den mappe som MATLAB arbejder i
        test.m

        >> pwd % Vis stien til mappen

        ans =

        /Users/mdj/Documents/MATLAB

        >> mkdir nymappe % opret en ny mappe kaldet 'nymappe'
        >> ls % list den nuværende mappe, bemærk den også indeholder den nye mappe
        nymappe		test.m


        >> what % printer alle M filer i mappen

        M-files in the current directory /Users/mdj/Documents/MATLAB

        test
        
        
        >> test % kør test.m, som indeholder: 2+2

        ans =

             4
    

Luk MATLAB

MATLAB kan lukkes som alle andre programmer, ved at gå til "File/Exit MATLAB" i menubaren, men man kan også lukke programmet direkte fra kommandovinduet med,

        >> quit
    

Hjælp

MATLAB indeholder dokumentation på alle indbyggede funktioner. Dokumentationen kan startes enten ved at klikke på den blå cirkel med et spørgsmålstegn, eller fra menuepunktet "Hjælp". Ved hjælp af kommandovinduet findes der to metoder der ofte er hurtigere, den ene help funktionsnavn og den anden er doc funktionsnavn, help giver en kort forklaring af den pågældende funktion direkte i kommandovinduet. doc åbner den relevante side i dokumentationslæseren, hvor der tit er en mere uddybende forklaring og illustrationer.

        >> help cosd
         COSD   Cosine of argument in degrees.
            COSD(X) is the cosine of the elements of X, expressed in degrees.
            For odd integers n, cosd(n*90) is exactly zero, whereas cos(n*pi/2)
            reflects the accuracy of the floating point value for pi.

            Class support for input X:
               float: double, single

            See also acosd, cos.

            Overloaded methods:
               codistributed/cosd

            Reference page in Help browser
               doc cosd

        >> doc cosd % Åbner dokumentationslæseren.
    

MATLAB Demonstrationer

Ved at skrive demo i kommandovinduet får man en række demonstrationsvideoer der kan anbefales at se i gennem, specielt de første "getting started" videoer.

    >> demo
who og whos

I kommandovinduet kan man med who og whos liste hvilke aktive variable man arbejder med. Det svarer til informationen man finder i skærmvinduet "Workspace".

    >> who

    Your variables are:

    navn  x     y     

    >> whos
      Name      Size            Bytes  Class     Attributes

      navn      1x6                12  char                
      x         1x1                 8  double              
      y         1x10               80  double
Find MATLAB versionen

Det er en god ide at vide hvilken version af MATLAB man arbejder med, da der kan være ændringer i funktionaliteten fra version til version. Kommandoen version printer versionsnummeret,

    >> version

    ans =
    7.10.0.499 (R2010a)
Tid og dato

Med clock kan man få en liste som indeholder årstal, måned, data og klokkeslet. date Printer datoen i et lidt pænere format, men som ikke er egnet til at benytte i ens beregninger.

    >> fix(clock)

    ans =

            2011           8          22           0          58          35

    >> clock

    ans =

       1.0e+03 *

        2.0110    0.0080    0.0220         0    0.0580    0.0370

    >> date

    ans =

    22-Aug-2011

Teksteditoren

I stedet for at indtaste hver linje kode i kommandovinduet, bør man oprette en .m fil der indeholder kildekoden