Norges
teknisk-IT-avdelingen
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.
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.
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
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
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.
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
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.
>> 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.
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.
Merk at Matlabs fil I/O funksjoner er basert på språket C's I/O funksjoner.
Eksport: Data kan eksporteres ved bl. annet:
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.
De samme katalogene har også en webadresse.
I "The MathWorks MATLAB Digest" annonseres nytt i arkivet.
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.
Andre forteller om Matlab: