www.ntnu.no *
INFOWEB >  programmer >  matematikk  > Matlab
Tasks
You may add comments
Or e-mail this article
Read articles written by neergaar
User rating
How much did this article help you?
Much Some Little
Print preview
You do not need a 'printer-friendly page' to print this page. Here's why
Contents

Matlab

MATLAB er et interaktivt program for numeriske beregninger og visualisering. Programmet er kommandostyrt og programmerbart. Det inneholder et stort antall kommandoer og funksjoner, og kan også kompletteres med egne funksjoner.

Navnet MATLAB kommer fra MATrix LABoratory. Den grunnleggende datatypen i MATLAB er matrisen.

MATLAB er et meget nyttig matematisk verktøy og benyttes derfor mye ved undervisningen ved NTNU.

Gjeldende utgave av MATLAB er v. 14 (v. 7.) for Windows, Macintosh og UNIX.

MATLAB's funksjonalitet kan utvides med "toolboxes" - "verktøykasser" for å løse problemer innen spesielle emneområder. SIMULINK er et verkøy for simulering av dynamiske ikkelineære system. Med Matlab kan du også koble deg opp mot lisenstjenerne til NTNU for å få tilgang til ekstra funksjonalitet.

For studenter er de følgende verktøykassene tilgjengelige:

For ansatte er de følgende verktøykassene tilgjengelige:

Lisens for NTNU

For mer informasjon om Matlab-lisenser, se ITEAs sider om Matlab

Starte og avslutte programmet

Når vi starter Matlab på en Windows eller Machintosh maskin, får vi opp "Matlab Command Window". Selve beregningene skjer i tekstmodus i dette vinduet, mens resultatet av grafikkommandoer, kommandoen demo, etc. vises i et eget grafikkvindu.

For UNIX startes Matlab fra et terminalvindu med kommandoen matlab. Beregningene foregår i terminalvinduet, og grafikk vises i et eget vindu vha. X-Windows.

Hvis vi under UNIX benytter en X-terminal eller kjører MATLAB på en annen maskin enn den arbeidsstasjonen vi sitter ved, må vi vha. variabel DISPLAY fortelle maskinen der MATLAB kjøres hvor resultatet skal vises. Hvis variable DISPLAY er satt korrekt, startes MATLAB ved å skrive matlab. Vi kan også oppgi verdien til variabel DISPLAY direkte ved oppstart av MATLAB: matlab -display nettadresse:0 , hvor nettadresse er Internet adressen til X terminalen eller arbeidsstasjonen vi sitter ved.

Når MATLAB har startet, får vi i terminalvinduet en innledende tekst, og til slutt >> hvor vi starter å skrive kommandoer.

MATLAB avsluttes med følgende kommando:

konsoll #1
>> exit

MATLAB demonstrasjon

Med kommandoen "intro" startes "Slideshow Player". Vi får i et eget vindu endel "slides" vi kan bla gjennom. Disse viser noen få eksempler på bruk av programmet. En langt mer omfattende demonstrasjon får vi ved å gi kommandoen demo.

Finne hjelp

MATLAB inneholder en omfattende hjelp via terminalen. Det er en meny help i "MATLAB Command Window", og det er endel kommandoer vi kan skrive:

Håndbøker

  1. MATLAB - felles for alle maskintyper:
    • Getting Started With Matlab
    • Using Matlab
    • Using Matlab Graphics
    • Application Program Interface Guide
    • Building GUIs with Matlab
    • Matlab Notebook User's Guide.
  2. Using SIMULINK
  3. Håndbok for hver "Toolbox".

Merk at ved å velge "Full Documentation Set" nederst på den websiden vi får først når vi gir kommandoen helpdesk, får vi tilgang til alle håndbøker! De er lagret i "Adobe Portable Document Format (PDF)" formatet, og vises på skjermen vha. programmet Acrobat Reader (UNIX: acroread). Når Acrobat Reader er installert, vil nettleseren starte Reader når vi klikker på en lenke til en håndbok. For at dokumentasjonen skal vises krever at den håndboka vi ber om er installert fra installsjons-CD-ene.

Håndbøkene kan også hentes over nettet fra MathWorks: Documentation for MathWorks Product Family

Merk Getting Started With Matlab. Getting Started with Matlab finnes også i helpdesk både i en HTML (World Wide Web) utgave og en PDF utgave.

Editere på kommandolinja

Kommandoer for å editere på en kommandolinje:
Ta fram forrige linje: opp-pil, Ctrl-P (Unix, Windows, Mac)
Ta fram neste linje: ned-pil, Ctrl-N (Unix, Windows, Mac)
Flytt ett tegn til venstre: venstre-pil, Ctrl-B (Unix, Windows, Mac)
Flytt ett tegn til høyre: høyre pil, Ctrl-F (Unix, Windows, Mac)
Flytt til venstre, slett et tegn: Delete (Unix), Backspace (Windows, Mac)
Flytt et ord til venstre: Ctrl-L (Unix), Ctrl-venstre-pil (windows)
Flytt et ord til høyre: Ctrl-R (UNIX), Ctrl-høyre-pil (Windows)
Flytt til begynnelsen av en linje: Ctrl-A (Unix, Windows, Mac)
Flytt til slutt av linje: Ctrl-E (Unix, Windows, Mac)
Avbryt gjeldende linje: Ctrl-U (Unix, Mac), Esc (Windows, Mac)
Veksle mellom skriv mellom og skriv over: Ctrl-T (Unix)
Slett et tegn der markør er: Ctrl-D (Unix, Windows, Mac), Del (Windows, Mac)
Slett til slutt av linja: Ctrl-K (Unix, Windows, Mac

"Smart recall": Vi kan ta frem en tidligere linje som starter med bestemte bokstaver ved å skrive bokstavene og så trykke opp-pil.

Eksempler

Matlab inneholder en rekke eksempler og demonstrasjoner. En liste kommandoer vi kan gi, får vi med kommandoen "help demos". Her er noen eksempler på hva Matlab kan gjøre:

Addere en konstant til alle elementer i en vektor:
>> a = [1 2 3 4 5]
>> b = a + 10
b = [11 12 13 14 15]
En kollonnevektor: b'
En vektor kan sendes direkte til en grafisk funskjon, prøv f.eks:
>> plot(b)
>> bar (b)
som gir henholdsvis en kontinuerlig plot og et stolpediagram for vektoren i eksempelet over.

Operasjoner på matriser:
>> A = [1 2 3; 4 5 6; 7 8 9]

kode #1
A=

    1   2   3
    4   5   6
    7   8   9

Transponert matrise og gi den transponerte variabelnavnet B: >> B=A'

kode #2
B=

    1   4   7
    2   5   8
    3   6   9

Prøv også følgende funksjoner:
Multiplikasjon av to matriser:
>> A * B

Multiplikasjon element for element i to matriser:
>> A .* B

Invers matrise:
>> inv(A)

Operasjoner på polynomer:
>> p = [1 -5 3]

Hvis p tolkes som et polynom, betyr uttrykket: s2 -5s +3. Man kan nå finne røttene til uttrykket:
>> roots(p)

kode #3
ans =

    4.3028
    0.6972

Kommandofiler og funksjoner

Istedenfor å bruke Matlab interaktivt, kan vi lagre en sekvens av operasjoner i en kommandofil (script fil). En kommandofil er en automatisering av utførelse av flere Matlab kommandoer. Demo filene er kommandofiler. De variable som kommandoene i en kommandofil benytter, er tilgjengelig etter utførelsen.

En funksjon er annen måte å automatisere beregningen på. I en funksjon er variable definert bare lokalt i funksjonen og resultatet overføres gjennom funksjonsnavnet. Variable overføres inn i funksjonen gjennom parametre i kallet. En funksjon som vi lager, er vår utvidelse av MATLABs muligheter.

En kommandofil eller en funksjon kan lages i en vanlig editor. Kommentarer legges inn i linjer som starter med %. Den første kommentarlinja i en funksjon benyttes av lookfor kommandoen. De neste kommentarlinjene i en funksjon før en blank linje vises når vi skriver "help funksjonsnavnet".

Kommandofiler og funksjoner lagres med filtype .m (en M fil) - da forstår Matlab at det er en slik fil.

Vi utfører en kommandofil eller en funksjon ved å skrive navnet:
>> minfil

Kommandoen path viser hvilke kataloger MATLAB søker gjennom etter en kommando, kommandofil eller funksjon. Funksjoner vi lager selv kan vi enten legge i den katalogen vi starter MATLAB fra (MATLAB starter med å lete i den katalogen), eller i en katalog vi setter opp at programmet skal lete i. På en Windowsmaskin er det satt opp at programmet leter i katalogen Work i Matlabkatalogen.

Toolbox (verktøykasse)

Som nevnt finnes det en rekke "verktøykasser" til Matlab for å løse problemer innen bestemte anvendelsesområder - en verktøykasse er en samlinger av funksjoner.

NTNU har for de som benytter felles ansattlisenstjener over nettet lisens for SIMULINK og 10 verktøykasser (Signal processing, Optimization, Statistics, Control Systems, Image Processing, Matlab Compiler, C/C++ Math Library, C/C++ Graph Library, PDE Toolbox, og Neural Networks.) Disse verktøyene kan benyttes av installasjoner på Windows og UNIX maskiner, dessverre ikke for Macintosh.

Funksjonene i verktøykassene er tilgjengelig sammen med funksjonene i selve MATLAB. Ved å skrive help får vi en liste med emner vi kan gå videre med. Av emnene ser vi hvilke verktøykasser som er tilgjengelig. Vi finner f. eks.:

kode #4
simulink/simulink    -  SIMULINK 
toolbox/control      -  Control System Toolbox.
images/images        -  Image Processing Toolbox.
nnet/nnet            -  Neural Network Toolbox.
nnet/nndemos         -  Neural Network Demonstrations and Applications.
toolbox/optim        -  Optimization Toolbox. 
toolbox/pde          -  Partial Differential Equation Toolbox.
toolbox/signal       -  Signal Processing Toolbox.
toolbox/stats        -  Statistics Toolbox.

For å få vite mer om hver enkelt, skriv help emne, f. eks. help toolbox/pde

Kommandofiler med demonstrasjoner

Med MATLAB leveres det en rekke kommandofiler for å demonstrere hva programmet kan gjøre, noe som også gjelder for verktøykassene (toolboxes). Se help og emnene matlab/demos, simulink/simdemos, images/imdemos og nnet/nndemos - samt help for endel av verktøykassene.

Kommandofiler og funksjoner fra brukere

MathWorks oppfordrer brukerne av MATLAB til å dele med andre nyttige kommandofiler og funksjoner (.m filer) de har laget. For å spre slike, er det opprettet egne kataloger for det i deres "anonymous" ftp tjener ftp.mathworks.com (144.212.100.11).
De samme katalogene har også en webadresse:The MATLAB Central file exchange.
I The MathWorks MATLAB Digest (http://www.mathworks.com/company/newsletters/) annonseres nytt i arkivet.

Utskrift

Kommandoen print i MATLAB er for utskrift av grafiske plot tegnet i et eget figurvindu. I figurvinduet er det også en kommando File/Print som skriver ut figuren i vinduet.

For lagring av et plot til en fil i ulike lagringsformat, se om Matlab i : Grafikk ut av og inn i diverse program. (http://www.ntnu.no/itea.info/programvare/grafikk-eksport.html).

For å få utskrift av beregningsresultatene, kan vi benytte kommandoen diary. Ved å skrive diary res.txt slår vi på utskrift til filen res.txt av alt som fra da av blir skrevet i terminalvinduet hvor MATLAB kjøres - både det vi skriver og det matlab skriver. Vi kan slå av utskriften til filen med diary off og på igjen med diary on.

Hvis vi ikke har benyttet kommandoen diary og ønsker utskrift av beregningsresultatene, må vi for UNIX utgaven av MATLAB klippe ut teksten i terminalvinduet, lime det inn i en editor, f.eks. emacs, og så skrive det ut.

I MATLAB for Windows og Macintosh vil kommandoen File/Print i kommandovinduet for MATLAB skrive ut all tekst i vårt arbeidsområde, mens File/Print Selection skriver ut en del av teksten som vi har markert (sladdet).

Bruke eksisterende C og Fortran kode i Matlab

C og Fortran funksjoner kan kalles direkte fra Matlab som om de var innebyggede funksjoner. Kode som kan kalles på denne måten kalles MEX-files. Du kan lese mer om MEX-files i MATLAB manualen: External Interface Guide.

Import og eksport av data

Import: Data kan importeres ved bl. annet:


Merk at Matlabs fil I/O funksjoner er basert på språket C's I/O funksjoner.

Eksport: Data kan eksporteres ved bl. annet:

Diverse:

Mer om bruk av MATLAB:


Languages: no flag_en Comments: 0 Aid: 133 User rating:
 
 
Last updated: 2007-08-07 Author: neergaar Read: 11230 times