Norges teknisk-
naturvitenskapelige universitet
NTNU

IT-avdelingen

Kort om bruk av Matlab

Matlab er et matematikkverktøy som finnes på Machintosh, Windows- og UNIX-platformer rundt om på NTNU. Matlab er et program for numerisk beregning og visualisering. Det er et alternativ til å gjøre beregninger vha. et programmeringsspråk og bruk av numeriske programbibliotek.

Programmet brukes f.eks. for integrering, matriseberegning, signal prosessering og grafikk. Problemer kan beskrives med matematisk notasjon, uten programmering.

Matlab inkluderer et sett av "toolboxes" som er samlinger av Matlab funksjoner tilpasset spesielle klasser av problemer. NTNU har for UNIX installasjonen av MATLAB lisens for SIMULINK og 8 verktøykasser (Signal processing, Optimization, Statistics, Control Systems, Image Processing, Matlab Compiler, PDE Toolbox, og Neural Networks.) For Windows og Macintosh er det ikke lisens for noen verktøykasse.

Matlab er installert paa UNIX studentarbeidsstasjonssalene rundt om, og på mange student PC og Mac saler. Studenter kan få programmet på egen PC eller Macintoshmaskin.

Innhold

  1. Oppstart
  2. Demonstrasjon av Matlab
  3. Hjelp
  4. Editere på kommandolinja
  5. Eksempler
  6. Bruk av scripts
  7. Grensesnitt til andre programmer
  8. Flytte mellom maskinplattformer
  9. Grafikk/visualisering
  10. Script og funksjoner fra brukere
  11. Diverse

1) Oppstart

Matlab under Unix utnytter X-Windows. Selve beregningene skjer i tekstmodus i terminalvinduet, mens resultatet av grafikkomandoer, kommando demo, etc. benytter X-Windows.

Hvis vi 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 tilslutt >> hvor vi starter å skrive kommandoer.

På Windows- eller Machintosh-maskiner startes programmet ved å dobbeltklikke på Matlab-ikonet. Hvor dette ikonet er plassert varierer fra sal til sal.

2) Demo

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 , evnt. for for Windows og Macintosh: meny Help/Examples and Demos i kommandovinduet.

3) Hjelp

MATLAB inneholder en omfattende hjelp via terminalen.
Kommandoer::
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. Netscape startes når denne kommandoen gis. Merk at det kan ta litt tid før Netscape vinduet kommer på skjermen.
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

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 (acroread). Netscape starter acroread når vi klikker på en lenke til et håndbok.

For å lette tilgangen til disse PDF utgavene av håndbøkene, og for å gi brukerne av MATLAB på alle maskintyper tilgang til samme håndbøker, er disse PDF filene også lagt ut lagt ut på NTNUs webtjener. Disse websidene er dog bare tilgjengelig fra maskiner ved NTNU. Adressen er: http://www.ntnu.no/itea.info/programvare/matlabdoc/fulldocset.html.

Håndbøker

  1. MATLAB - felles for alle maskintyper (for utg. 5):
  2. Using SIMULINK
  3. Håndbok for hver "Toolbox". For utg. 5 er det ny håndbok for "toolbox": Control System, Optimization og Signal Processing.
  4. Fra Uppsala Universitet: "Anvendarhandledning før MATLAB 4.2." Kjøpes på Tapir bokhandel.
  5. Finn Haugen, Høgskolen i Telemark: Lær MATLAB, Lær Simulink. Selvstudiehefter. Kjøpes på Tapir Bokhandel.

Merk "Getting Started With Matlab". Denne finnes også i helpdesk blandt PDF filene med håndbøker. Fra maskiner ved NTNU kan denne også hentes fra NTNUs webtjener uten å starte MATLAB.

Orakelkontoret ligger i andre etasje i Sentralbygg II, Gøshaugen. Kontoret er bemannet mandag til fredag fra 10.00 til 16.00 i semesteret. Her kan du få svar på spørsmålene dine, samt få bla i Matlab-håndbøkene. Spørsmål kan også sendes pr. e-post til orakel@stud.unit.no

4) 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.

5) 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 hendholdsvis en kontinuerlig plot og et stolpe-diagram 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: >> A'
ans =

     1     4     7
     2     5     8
     3     6     9
Prøv også folgende 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 dette: s^2 -5s +3. Man kan nå finne rottene til dette uttrykket:

>> roots(p)

ans =

    4.3028
    0.6972

6) Script og funksjoner

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

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

Et script 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 lookofor kommandoen, De neste kommentarlinjene i en funksjon før en blank linje vises når vi skriver "help funksjonsnavnet".

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

Vi utfører et script eller en funksjon ved å skrive navnet:

>> minfil

Kommandoen path viser hvilke kataloger MATLAB søker gjennom etter en kommando, script eller funksjon med et navn vi bruker. 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 med navn matlab i vårt eget katalogområde.

7) Grensesnitt til andre programmer

Inkludere en Matlab figur i et Latex dokument:

Unix:

>> print myfig.ps -dps

lagrer det som nå finnes i figurvinduet til en postscript fil. Du kan nå se på denne vha ghostview. Det er imidlertid rapportert om noen problemer med å inkludere denne filen i latex.

Windows:

I Windows får du en menylinje på figurvinduet. Velg File/Print, kryss av for print to file, og trykk OK. Du vil så få spoersmål om å gi filen et navn. Dette krever at du har satt opp en postscript-printer.

For å innkludere en postscript-fil i et latex-dokument, kan du skrive folgende:

\input{psfig}
\begin{figure}
\begin{center}
\framebox{\psfig{figure=path/file.ps}} 
\caption{En fin figur} 
\end{center}  
\end{figure}  
Bytt ut path og file.ps i teksten over med path og filnavn til postscript-filen din.

Inkludere en Matlab figur i en tekstbehandler:

Lag en postscript fil av figuren som beskrevet i seksjonen over.

For å inkludere denne filen i Word, kan du velge Insert/Picture fra menyen i Word, velge filen du har laget, og trykke ok.

I FrameMaker benyttes Inport/File. Da kan vi velge mellom "Import by Reference" og "Copy into Document".

Du kan ikke se hvordan figuren ser ut inne i Word og FrameMaker, du ser bare en tom boks. Når du skriver ut filen på en postscript skriver, vil figuren tegnes riktig i dokumentet.

Vi kan også benytte klippe/lime kommandoene i Matlab og tekstbehandler, og vi kan benytte skjermdunp vha. et program som gjør det. På Macintosh kan vi også benytte File/Save As til en PICT fil.

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 dette 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:

8) Flytte mellom maskinplattformer

Matlab applikasjoner kan overføres mellom ulike maskintyper som M (.m) filer (funksjoner og script) og MAT filer (data). En M fil er en tekstfil, em MAT fil er en binærfil. En MAT fil inneholder en identifikasjon av hvilken maskintype den er laget på

9) Grafikk/visualisering

Matlab inneholder en rekke funksjoner for 2-D og 3-D grafikk/visualisering. Se help graphics, help plotxy og help plotxyz. Start demo og velg visualisering - vi får se plot og kommandoene som brukes.

Et eksempel fra Matlab håndboka s 2-57:

t=0:pi/100:2*pi;
x=sin(t);
y1=sin(t+.25);
y2=sin(t+.5);
plot(x,y1,'r-',x,y2,'g--')

Kommandoen plot lager kurver av y1 mot x og y2 mot x i samme aksekors. Det første datasettet tegnes som en rød linje og den andre som en grønn stiplet linje. Vi kan legge til tittel og tekst på aksene:

title('Phase shift')
xlabel('x=sin(t)')
ylabel('y=sin(t+)') 

Grafikk tegnes i et "figurvindu". Med kommandoen print skriver vi ut innholdet i figurvinduet på skriver eller - hvis filnavn er oppgitt - på en fil. Det er forskjellige PostScript og andre drivere - se help print. Med kommandoen: print -dpsc plot.ps lager vi f.eks. en Encapsulated Color Postscript fil av figuren i figurvinduet.

I Matlab for Windows kan vi også benytte de innebygde utskriftsmulighetene i Windows. På Windows, Macintosh og UNIX kan vi velge print kommandoen i figurvinduets File meny. På Macintosh er det osgå en Save as kommando som gir mulighet for lagring av PICT og EPS (Encapsulated PostScript) filer.

Vi kan også med et egnet program (f.eks. xv på UNIX maskiner) lage en skjermdump av en figur for utskrift eller flytting til en tekstbehandler eller et annet program. Vi kan også flytte en figur med klipp og lim funksjoner.

Vi kan tegne flere uavhengige plot i samme aksekors ved å gi kommandoen Hold on.

10) Kommandofiler (script) 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.10). Katalogene er /pub/contrib/v4/ (fra brukere av Matlab v. 4) og /pub/contrib/v5 (MATLAB v. 5).

De samme katalogene har også en webadresse.

I "The MathWorks MATLAB Digest" annonseres nytt i arkivet.

11) Diverse

a) Vi kan utføre operativsystemkommandoer eller starte andre program fra inne i Matlab ved å skrive et utropstegn og så kommando eller programnavn. Hvis vi avslutter linja med & vil vi sette i gang en prosess i bakgrunnen slik at vi ikke må vente til kommandoen eller programmet er ferdig før vi kan gjøre noe mer i Matlab. Et eksempel på at dette er nyttig er at vi kan starte en editor og editere på en fil med Matlab kommandoer (script) eller en funksjon.

Et eksempel: !emacs test.m &

Dette gjelder for UNIX og Windows utgaven. I Windows utgaven kan vi også avslutte linja med vertikal strek (|) og få det nye vinduet som et ikon istedet for et fullt vindu.

b) Ved å skrive kommando path får vi katalognavn som Matlab vil søke i hvis vi starter en linje med et navn som ikke er et internt varabelnavn eller funksjonsnavn - og det ikke er navnet på en kommandofil i egen stående katalog.

c) Med kommando diary tar vi på en fil vare på alle kommandoer vi gir og mesteparten av resultatene. Dette startes med diary filnavn. Vi kan slå av og på lagringen med diary off og diary on.

d) 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).

e) 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.

f) 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.

g) 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.

h) Vi kan lagre hele vårt arbeidsområde med save. Det tas inn med load. Det lagres på filen matlab.mat. Vi lagrer innholdet i variabel x og y i filen temp.mat med: save temp x y.

i) For å få utskrift av beregningsresultatene , kan vi benytte kommandoen diary nevnt over. 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 sender hele teksten i arbeidsområdet til en skriver ved å benytte kommandoen File/Print i kommandovinduet for Matlab (Windows og Macintosh). Vi kan markere en del av teksten og sende den til skriver med File/Print Selection. Merk at print kommandoen i Matlab er for å skrive ut figurer i figurvinduet.

I UNIX utgaven av MATLAB må vi klippe ut teksten i terminalvinduet, lime det inn i en editor, f.eks. emacs, og så skrive det ut - hvis ikke kommandoen diary er benyttet.

Lykke til!

Andre forteller om Matlab:


Opprinnelig laget for versjon 4.2 av Katrine Wøien, Orakeltjenesten, ITEA og Knut L Vik, ITEA/DESK
Sist oppdatert av Knut L. Vik 19/8 1997