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:
- Signal processing
- Optimization
- Control Systems
- Image Processing
- SimPowerSystem
- PDE Toolbox
For ansatte er de følgende verktøykassene tilgjengelige:
- Signal processing
- Optimization
- Statistics
- Control Systems
- Image Processing
- Matlab Compiler
- PDE Toolbox
- Neural Networks
Lisens for NTNU
- Alle studenter som har en datamaskin tilknyttet internett, kan kjøre Matlab på sin maskin under studietiden og hente lisens fra en sentral lisenstjener. Programmet distribueres via Progdist og av Orakeltjenesten: Distribusjon av programvare. Lisensen gir tilgang på de produktene som er nevnt i listen ovenfor,
- Alle ansatte som har en datamaskin som er tilknyttet internett kan kjøre Matlab mot en sentral lisenstjener (som for studenter). Lisensen gir tilgang til produktene som er nevnt i lista over.
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:
>> 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:
-
help
"On-line" hjelp, viser teksten i terminalvinduet. Vi får først en liste over emner det er hjelp for, og så kan vi skrive help emne og få hjelp om dette emnet. Ved f. eks. å skrive help graph3d får vi en liste over kommandoer for grafer i 3 dimensjoner. Veiledning om kommandoen plot3 får vi så ved å skrive help plot3.
-
helpwin
"On-line" hjelp, i et eget vindu, hvor vi også kan navigere.
-
helpdesk
Omfattende hypertekstbasert dokumentasjon basert på World Wide Web. En nettleser startes når denne kommandoen gis. Merk at det kan ta litt tid før nettleservinduet kommer på skjermen. Dette krever at dokumentasjonen er installert fra MATLAB installasjons-CD-ene.
-
lookfor
Med kommandoen lookfor sammen med et emneord (lookfor emne) kan vi foreta emnesøk etter MATLAB funksjoner - både interne og egne funksjoner. Se help lookfor. Lookfor søker i den første kommentarlinja i en funksjon.
-
ver
Versjonsinformasjon for MATLAB, SIMULINK, og verktøykasser.
-
whatsnew
Viser noen "Readme" filer
Håndbøker
- 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.
- Using SIMULINK
- 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]
A=
1 2 3
4 5 6
7 8 9
Transponert matrise og gi den transponerte variabelnavnet B: >> B=A'
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)
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.:
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:
- Skriv inn data direkte i en variabel i Matlab
- Bruk en teksteditor og skriv inn dataene på samme måte. Dataen lagres så i en M (.m) (script) fil som startes.
- Les data fra en "flat ACSII fil". En "flat" fil lagrer data i ACSII format med fast lengde på radene, med mellomrom mellom tallene og linjeskift etter hver linje. Slike filer leses inn med kommandoen load. Data i filen res.dat leses inn i variabel res med: load res.dat.
- Bruk av Matlab In/Out funksjoner - som fopen og fread. Disse kan benyttes når data skal hentes fra andre program.
- Lag en MEX fil for å lese data - kan benyttes hvis det eksisterer C eller Fortran subrutiner for å lese datafiler fra andre program.
- Vi kan skrive et C eller Fortran program som lagrer dataene i Matlabs MAT filformat. Slike filer leses med load kommandoen. Se om "MAT-file Subroutine Library" i "External Interface Guide"
Merk at Matlabs fil I/O funksjoner er basert på språket C's I/O funksjoner.
Eksport: Data kan eksporteres ved bl. annet:
- For små datamengder bruk kommandoen diary (se kapittel Utskrift) og skriv ut innholdet i aktuelle variable. Filen det skrives i kan editeres på etterpå.
- Data kan lagres i ASCII form med save kommandoen og opsjon -ascii. Et eks. - utskrift av matrise A på filen res.dat: save res.dat A -ascii
- Klipp og lim mellom Matlab og f.eks. et tekstbehandlingsprogram.
- Bruk In/Out funksjoner som fopen og fwrite.
- Lag en MEX fil. Denne og forrige metode kan beyttes når data skal overføres til andre program.
- Skriv ut data som en MAT fil med load kommadoen og skriv et C eller Fortran program for å omgjøre dette formatet til et ønsket format.
Diverse:
- Det er 4 kommandoer mot filer og kataloger på maskina - de samme kommandoer for alle maskiner: dir(vis filliste), type (skriv ut innholdet i en fil), delete (slett fil), cd (skift katalog).
- En kommando fortsetter over i neste linje når vi avslutter linja med tre punktum (...). Når vi avslutter en kommando med semikolon (;) skrives ikke resultatet av kommandoen ut. Vi kan skrive flere Matlab kommandoer på samme linje med komma mellom.
- Et variabel- eller funksjonsnavn skal starte med en bokstav og kan inneholde inntil 19 tegn og tall. Vi får en variabelliste med kommando who og en liste også med variabelstørrelser med whos.
- Det er 4 kommandoer for å bestemme utskriftformat for flyttall: format short, format short e, format long, format long e. Hvis ikke noe er sagt, benyttes format short. Med format bank får vi to desimaler. Ved å velge format compact blir resultatet skrevet på skjermen med mindre linjeavstand.
Mer om bruk av MATLAB:
- NetNews møter:
- comp.soft-sys.matlab: Et lager av meldinger til dette møtet er i MathWork's WWW tjener
- sci.math.num-analysis
| Språk: | Kommentarer: | 0 | Aid: | 133 | Brukervurdering: |
|
|
| Sist oppdatert: | 2007-08-07 | Forfatter: | neergaar | Lest: | 11250 ganger |