You are on page 1of 34

MATLAB - Osa 1

Timo Mkel

SISLT:
1.

KYTTLIITTYM...........................................................................................................1
1.1
YLEIST ...........................................................................................................................1
1.2
TYPYT .......................................................................................................................1
1.2.1
Komentoikkuna........................................................................................................2
1.2.2
Tytila......................................................................................................................4
1.2.3
Komentohistoria ......................................................................................................4
1.2.4
Nykyinen hakemisto.................................................................................................5
1.3
OHJETOIMINTA .................................................................................................................5
1.4
HAKUPOLKU.....................................................................................................................6
1.5
EDITORI ............................................................................................................................7
1.6
YLEISI KOMENTOJA ........................................................................................................7

2.

SKALAARIT .........................................................................................................................8
2.1
2.2
2.3

3.

LASKUTOIMITUKSET.........................................................................................................9
YLEISI VAKIOITA ..........................................................................................................10
PERUSFUNKTIOT .............................................................................................................12

MATRIISIT .........................................................................................................................15
3.1
MATRIISIEN SYTT.......................................................................................................16
3.1.1
Satunnaismatriisit .................................................................................................18
3.2
VEKTORIEN SYTT .......................................................................................................20
3.3
OSAMATRIISIT JA LOHKOMATRIISIT ................................................................................21
3.4
MATRIISIOPERAATIOT ....................................................................................................24
3.5
TAULUKKO-OPERAATIOT................................................................................................26
3.5.1
Taulukkofunktiot....................................................................................................28

4.

LUKUJEN ESITYSMUODOT ..........................................................................................32

MATLAB Osa 1

1. KYTTLIITTYM
1.1 Yleist
MATLAB on tekniseen laskentaan suunniteltu tehokas matematiikkaohjelma, jolla voi
suorittaa numeerista laskentaa
havainnollistaa kuvallisessa muodossa
tehd ohjelmia.
MATLABia ohjataan komennoilla, jotka kirjoitetaan komentoikkunan syttriveille. MATLABia
voidaan laajentaa toolboxeilla, jotka ovat tiettyihin erikoisaloihin keskittyvi ohjelmapaketteja.
MATLAB on numeerisen laskennan ohjelma, mutta siihen on siihen on saatavissa Symbolic
Math Toolbox, joka mahdollistaa symbolisen laskennan.
Keskeinen tietoalkio MATLABissa on matriisi. Nimi MATLAB tuleekin sanoista matrix laboratory.

1.2 Typyt
MATLABin oletustypydss on kolme ikkunaa, joista osassa on vlilehti. Nist trkein on
Command Window, jossa laskentakomennot annetaan.
Muut osat ovat
Workspace, tytilassa olevat muuttujat.
Command History, komentohistoria.
Current Directory, nykyinen hakemisto

MATLAB Osa 1

Typyt voi muuttaa. Ikkunoita voi sulkea ja kokoa muuttaa. Typydll olevan ikkunan saa
erilliseksi ikkunaksi (undock) ikkunan oikeassa ylreunassa olevalla nuolipainikkeella . Erilli. Valikostossa Desktop on typysen ikkunan saa takaisin typydlle (dock) painikkeella
tn liittyvi komentoja. Alkuperisasetuksiin palataan komennolla Desktop: Desktop Layout:
Default.
Nykyinen hakemisto nkyy typydll kohdassa

Sen voi vaihtaa sielt. Kaikki tiedoston tallennetaan nykyiseen hakemistoon.


Valikkokomennolla File: Preferences voi muuttaa oletusasetuksia.
1.2.1 Komentoikkuna
Komennot kirjoitetaan komentoikkunaan kehotteen >> pern. Komennot ptetn painamalla
Enter-nppint. Jos halutaan antaa monta rivi komentoja kerralla, ptetn rivit

MATLAB Osa 1

Shift+Enterill; viimeinen rivi ptetn Enterill. Samalle riville voi kirjoittaa komentoja
erottamalla ne joko pilkulla tai puolipisteell. Jos komennon perss on puolipiste niin komennon tulos ei tule nytlle. Tt kannattaa kytt varsinkin suurissa matriiseissa.
Komennon tulos voidaan tallentaa muuttujaan sijoituskskyll, jonka operaattori on =. Jos sijoitusksky ei anneta, tallennetaan tulos muuttujaan ans.
>> 1+2
ans =
3
>> a=1/ans
a =
0.3333
>> 3*a
ans =
1
>> b=1-a;
>> b
b =
0.6667

Muuttujan nimen on alettava kirjaimella ja se voi sislt kirjaimia (ei kuitenkaan kksi),
numeroita ja alaviivoja. Nimen 63 ensimmist merkki otetaan huomioon. Isot ja pienet kirjaimet ovat eri kirjaimia.
Jos komento ei mahdu yhdelle riville se voidaan jatkaa seuraavalla riville kirjoittamalla ja
painamalla Enteri:
>> s=1+1/2+1/3+1/4+1/5+1/6+1/7+...
1/8+1/9+1/10+1/11+1/12
s =
3.1032

Kommentit aloitetaan %-merkill.


>> 1.234-3.1459

%MATLABissa on kytss desimaalipiste

ans =
-1.9119

Aikaisempia komentoja
vasti:
Nppily

xy

home
end
esc

voi kopioida normaaliin tapaan. Lisksi komentoja voi selailla seuraaToiminto


edellinen komento
seuraava komento
aikaisempi komento, joka alkaa kirjaimilla xy
oikealle
vasemmalle
rivin alkuun
rivin loppuun
Komentorivin tyhjminen

MATLAB Osa 1

Kirjoittamalla komennon tai muuttujan nimen alun ja painamalla tabulaattoria tapahtuu seuraavaa:
Jos tydentminen on yksiksitteinen MATLAB tydent komennon.
Jos tydentminen ei ole yksiksitteinen, saa luettelon vaihtoehdoista.
Ohjelman ajon voi keskeytt komennolla Ctrl+c tai Ctrl+Break. Ohjelman keskeytymist saa
yleens odottaa jonkin aikaa.
MATLABin kytt lopetetaan1
valikkokomennolla File: Exit MATLAB tai
komennnoilla quit tai exit.
1.2.2 Tytila
Tytilassa (Workspace) nkyvt kytss olevat muuttujat. Muuttujista nytetn niiden nimet,
arvot ja tyypit.

Tytilan muuttujia voi ksitell tytilan painikkeilla tai hiiren oikeanpuoleisella nppimell
aukeavaa putkahdusvalikkoa kytten. Kaksoisklikkaamalla muuttujaa kynnistyy taulukkoeditori, jolla voi tarkastella ja muuttaa arvoja. Muuttuja voidaan piirt kytten painiketta

tai komennolla File: Save Workspace As. Tm


Tytila voidaan tallentaa painikkeella
tallentaa tytilan MAT-tiedostoon, jonka tarkenne on .mat. MAT-tiedosto voidaan lukea painikkeella

tai komennolla File: Import Data

1.2.3 Komentohistoria
Komentohistoria-ikkunassa (Command History) nytetn aikaisemmin annetut komennot. Komentohistorian yksittisi komentoja saa suoritukseen
kaksoisklikkaamalla komentoa
kytten putkahdusvalikkoa Evaluate Selection, joka aukeaa hiiren oikeanpuoleisella
nppimell
Useita komentoja saa suoritukseen valitsemalla Shift-nppin tai Ctrl-nppin painettuna hiiren
vasemmalla painikkeella komentoja ja
raahaamalla ne hiiren vasen painike painettuna komentoikkunaan. Raahattuja rivej voi
muokata komentoikkunassa. Komennot suoritetaan painamalla Enteri.

Erss kirjassa varoitetaan lopettamasta ohjelmaa MATLABin ikkunan oikean ylkulman lopetuspainikkeella,
koska se voi joissain harvinaisissa tapauksissa sotkea tietokoneen kyttjrjestelm.

MATLAB Osa 1

antamalla putkahdusvalikkokomento Evaluate Selection.


1.2.4 Nykyinen hakemisto
Nykyinen hakemistoikkunassa (Current Directory) voi etsi ja avata MATLAB-tiedostoja joko
kaksoisklikkaamalla, kyttmll putkahdusvalikkoja tai painikkeita.

1.3 Ohjetoiminta
Ohjetoiminto kynnistyy painikkeella

tai komennolla doc. Ohjeikkunassa on kaksi osaa:

navigointi-ikkuna mahdollistaa ohjeaiheiden nopean valinnan.


teksti-ikkunassa esitetn ohjeet.
Navigointi-ikkunassa kannattaa tehd seuraavan kuvan mukaiset valinnat.

Tllin teksti-ikkunasta psee helposti ksiksi MATLABin funktioiden ohjeisiin. Funktioiden


esitys voidaan valita
luokittain, Functions Categorical List tai
aakkosjrjestyksess, Functions - Alphabetical List.
Nist jlkimminen on ehk parempi, sill se mahdollistaa nopean tiedon saannin halutusta
funktiosta.
Komennolla help saa komentoikkunaan ryhmitellyn luettelon komennoista. Klikkaamalla hiirell komentoryhm, saa tarkempaa tietoa komennoista.

MATLAB Osa 1

Komennolla help KomennonNimi saa komentoikkunaan lyhyen esittelyn tietyst komennosta.

Esittelyn on aina yo. kuvan mukainen rakenne.


Komennolla doc KomennonNimi aukeaa ohjeikkunaan laajempi esittelyn tietyst komennosta.
Valikkokomennolla Help: Web Resources psee netist hakemaan tietoa.
MATLABissa on hyvin laaja kokoelma esimerkkiohjelmia eli demoja. Niihin psee ksiksi
valikkokomennolla Help: Demos tai komentoikkunan komennolla demos. Esimerkkiohjelmia
voi
katsella omassa ikkunassaan
ajaa komentoikkunassa
aukaista editoriin.
Esimerkkiohjelmat on hyvin ryhmiteltyj. Niihin kannattaa tutustua.

1.4 Hakupolku
MATLABin tiedosto-operaatiot kyttvt lhtkohtanaan nykyist hakemistoa ja hakupolkua.
Ajettavan ohjelman on oltava jommassakummassa nist.
Hakupolkuja voi muuttaa valikkokomennolla File: Set Path

MATLAB Osa 1

Tllin aukeaa ikkuna, jonka painikkeilla


Add Folder ja Add with Subfolders voi list hakemistoja hakupolkuun.
Remove voi poistaa hakemistoja hakupolusta
Move voi muuttaa hakemistojen keskinist jrjestyst. Jrjestys on trke, sill samannimisist tiedostoista valitaan se, joka on ylinn hakupolussa.

1.5 Editori
MATLABin tekstieditorin voi kynnist
komennolla edit (tai edit TiedostonNimi)
valikkokomennolla File: New: M-file tai File: Open
painikkeilla
.
Editori tuntee MATLABin syntaksin. Editorilla on ktev kirjoittaa pidempi komentojonoja tai
tehd ohjelmia. Siksi editori-ikkuna on aina hyv pit auki MATLABilla tyskenneltess.
Editorissa voi olla auki useita tiedostoja. Jos useampi tiedosto on auki, on editori-ikkunan vasemmassa alanurkassa on vlilehdet, josta voi klikkaamalla vaihtaa tiedostoa.

1.6 Yleisi komentoja


Seuraavaan taulukkoon on koottu joitain hydyllisi yleiskomentoja.

MATLAB Osa 1

Komento
who

Merkitys
Tulostaa tytilassa olevat muuttuja

whos

Tulostaa tytilassa olevat muuttujat, niiden koot ja tyypit

clear

Poistaa kaikki muuttujat tytilasta

clear a

Poistaa muuttujan a tytilasta

clc

Tyhjent komentoikkunan

clf

Tyhjent nykyisen grafiikkaikkunan

close

Sulkee aktiivisen ikkunan

close all

Sulkee kaikki ikkunat

doc

Avaa ohjeikkunan

edit

Avaa MATLABin editorir

dir

Tulostaa tyhakemiston sislln

type a

Tulostaa tiedoston a

>> who
Your variables are:
a
ans b
>> whos
Name

Size

a
ans
b

1x1
1x1
1x1

Bytes
8
8
8

Class
double array
double array
double array

Grand total is 3 elements using 24 bytes


>> clear
>> who
>> type cot
function y = cot(z)
%COT
Cotangent of argument in radians.
%
COT(X) is the cotangent of the elements of X.
%
%
Class support for input X:
%
float: double, single
%
%
See also ACOT, COTD.
%
%

Copyright 1984-2004 The MathWorks, Inc.


$Revision: 5.7.4.4 $ $Date: 2004/12/06 16:34:47 $

y = 1./tan(z);

2. SKALAARIT
MATLABin keskeinen tietoalkion on matriisi. Matriisit sytetn hakasulkuja kytten (ks. Matriisien sytt). MATLABissa skalaari eli luku on 11-matriisi: matriisi jossa on yksi rivi ja yksi
sarake. Se voidaan sytt ilman hakasulkuja.

MATLAB Osa 1

2.1 Laskutoimitukset
Skalaareilla laskenta tapahtuu normaaliin tapaan. Desimaaliluvuissa kytetn desimaalipistett.
Laskentaoperaattorit ovat normaalit:
Operaatio
Yhteenlasku

Operandi

Huomautus

Vhennyslasku

Kertolasku

Jakolasku

Potenssin korotus

Kertomerkki on aina laitettava

>> 5023+49
ans =
5072

Monta komentoa voidaan antaa samalla rivill:


>> 2^6, 3*(5+2), (3+4)/5
ans =
64
ans =
21
ans =
1.4000

Mys puolipistett voidaan kytt erottimena. Tllin komennon tulos ei tule nytlle.
Muuttujiin voidaan tallentaa arvoja. Jos tulosta ei tallenneta muuttujaan, MATLAB tallentaa
tuloksen muuttujaan ans.
>> 5+6
ans =
11
>> 7*ans
ans =
77
>> x=-23
x =
-23
>> y=7*x
y =
-161

Laskentajrjestyst voidaan ohjata kaarisuluilla ( ).


>> (6.2^4+7.5^3)/(6.2^3*7.5)
ans =
1.0627

ESIMERKKI. Lasketaan suoran ympyrlierin tilavuus kaavalla V = r 2 h , miss r on pohjaympyrn sde ja h on ympyrlierin korkeus.

MATLAB Osa 1

10

Annetaan muuttujille arvot:


>> r=1.2
r =
1.2000
>> h=0.35
h =
0.3500

Tallennetaan tilavuus muuttujaan V (luku on pi):


>> V=pi*r^2*h
V =
1.5834

Muuta muuttujien r ja h arvoja ja laske uusi tilavuus. Kyt komentojen selailuun nuolinppimi.
TEHTVI
1. Laske katkaistun ympyrkartion tilavuus kytten kaavaa V = h

a 2 + ab + b 2
, kun
3

- kartion korkeus h = 0,92 m


- pohjan sde a = 1,26 m
- kannen sde b = 0,83 m.
Sijoita arvot muuttujiin ja laske kaavaa kytten. Laskennan jlkeen muuta lhtarvoja. Kyt selaamiseen nuolipainikkeita.

2.2 Yleisi vakioita


Seuraava taulukko sislt yleisimpi vakioita:
Vakio
pi

Merkitys
Luku

exp(1)

Napierin luku e

i tai j

Imaginaariyksikk

eps

Tietokoneen lukujen esitystarkkuus.

Inf

retn

NaN

Ei luku (Not a Number)

realmax

Suurin reaaliluku tietokoneessa

realmin

Pienin positiivinen reaaliluku tietokoneessa

intmax

Suurin kokonaisluku (32-bittinen)

intmin

Pienin kokonaisluku (32-bittinen)

true

Tosi

false

Eptosi

MATLAB Osa 1

11

>> pi,exp(1)
ans =
3.1416
ans =
2.7183

Jos haluaa Napierin luvulle kytt merkint e, voi mritell


>> e = exp(1)
e =
2.7183

Imaginaariyksikt ovat i ja j.
>> i^2
ans =
-1
>> 1/(2+i)
ans =
0.4000 - 0.2000i
>> (4+5j)/(3+j)
ans =
1.7000 + 1.1000i

Koska liukulukuesityksess reaaliluvut esitetn rellisell mrll bittej, voi itseisarvoltaan


tarpeeksi pienill luvuilla a olla 1 + a = 1 :
>> (1+10^-12)-1
ans =
1.0001e-012

mutta
>> (1+10^-16)-1
ans =
0

Vakio eps ilmoittaa tietokoneen lukujen esitystarkkuuden. Se on luvun 1 ja seuraavaksi suuremman desimaaliluvun erotus.
>> eps
ans =
2.2204e-016
>> (1+eps)-1
ans =
2.2204e-016
>> (1+eps/2)-1
ans =
0

Vakio Inf ei ole matemaattisesti retn. Jossain tapauksissa kuitenkin on tarkoituksenmukaista


laskea retnt kytten. Nollasta poikkeavan reaaliluvun jako nollalla antaa tulokseksi Inf.

MATLAB Osa 1

12

>> 1/0
Warning: Divide by zero.
ans =
Inf
>> 1/Inf
ans =
0

Epmrinen numeerinen arvo 0/0 antaa tulokseksi NaN:


>> 0/0
Warning: Divide by zero.
ans =
NaN
>> Inf/Inf
ans =
NaN

On tiedettv, mill lukualueella tietokone toimii. Jos mennn tmn alueen ulkopuolelle, ei
MATLAB en toimi oikein.
>> realmax,realmin,intmax,intmin
ans =
1.7977e+308
ans =
2.2251e-308
ans =
2147483647
ans =
-2147483648
>> (realmax+1)-realmax
ans =
0
>> 2*realmax
ans =
Inf
>> 2*intmax-intmax
ans =
0
>> (intmin-1)-intmin
ans =
0

Loogisia vakioita true ja false ksitelln myhemmin.

2.3 Perusfunktiot
MATLABissa on kytettviss tutut perusfunktiot. Huomaa joitain merkinteroja normaaliin
kytntn nhden.

MATLAB Osa 1
Funktio
sqrt(x)

Merkitys
nelijuuri

exp(x)

e-kantainen eksponenttifunktio

log(x), log10(x)

luonnollinen logaritmi, 10-kantainen logaritmi

sin(x), cos(x), tan(x), cot(x)

trigonometriset funktiot

asin(x), acos(x), atan(x), acot(x)

arkusfunktiot

sinh(x), cosh(x), tanh(x), coth(x)

hyperboliset funktiot

asinh(x), acosh(x), atanh(x), acoth(x)

areafunktiot

Trigonometristen funktioiden argumentti ja arkusfunktioiden arvot ovat radiaaneissa.


ESIMERKKEJ.
>> sqrt(2)
ans =
1.4142
>> log(exp(1))
ans =
1
>> sin(pi/2)
ans =
1
>> atan(1)
ans =
0.7854

Jos haluaa laskea asteissa, voi mritell


>> deg = pi/180;

Tllin
muuttujalla deg kertominen muuntaa asteet radiaaneiksi
muuttujalla deg jakaminen muuntaa radiaanit asteiksi
>> sin(45*deg)
ans =
0.7071
>> cos(60*deg)
ans =
0.5000
>> atan(1)/deg
ans =
45

Seuraavassa on esitetty lis perusfunktioita:

13

MATLAB Osa 1
Funktio
abs(x)

Merkitys
itseisarvo

sign(x)

etumerkki

antan2(y,x)

pisteen (x, y) paikkavektorin vaihekulma. Huom. jrjestys!

real(z), imag(z)

kompleksiluvun z reaaliosa, imaginaariosa

angle(z)

kompleksiluvun z vaihekulma

ESIMERKKEJ.
>> atan2(5,3)/deg
ans =
59.0362
>> angle(3+5i)/deg
ans =
59.0362

%Sama arvo!

>> abs(3+5i)
ans =
5.8310

Reaaliluvulle sign antaa reaaliluvun merkin (+1 tai 1) tai arvon 0


>> sign(3),sign(-15),sign(0)
ans =
1
ans =
-1
ans =
0

mutta imaginaariluvulle z funktion sing(z) arvo on

z
z

>> z=3-7i;
>> sign(z)
ans =
0.3939 - 0.9191i
>> z/abs(z)
ans =
0.3939 - 0.9191i

Lukujen kokonaisluvuksi pyristmiseen on kytettviss seuraavia funktioita:

14

MATLAB Osa 1
Funktio
round(x)

Merkitys
Pyristminen lhimpn kokonaislukuun

fix(x)

Kokonaisluvuksi pyristminen kohti nollaa

floor(x)

Lattiafunktio: alaspin kokonaisluvuksi pyristminen

ceil(x)

Kattofunktio: ylspin kokonaisluvuksi pyristminen

15

ESIMERKKEJ.
>> round(-2.7),round(2.7)
ans =
-3
ans =
3
>> fix(-2.7),fix(2.7)
ans =
-2
ans =
2
>> floor(-2.7),floor(2.7)
ans =
-3
ans =
2
>> ceil(-2.7),ceil(2.7)
ans =
-2
ans =
3

TEHTVI
1. Laske lausekkeiden arvot:
33,2 + 44,3
2,3 4,2

3 e 2 , 05

sin(30)

sin (30)

3
(esit tulos asteissa!)
arccos

3. MATRIISIT
Matriisi on suorakulmion muotoinen lukutaulukko. Jos matriisissa on m rivi ja n saraketta, matriisin sanotaan olevan kertalukua mn. Puhutaan mys mn-matriisista. Erityisesti
Luvut eli skalaarit ovat 11-matriiseja.
Vaakavektorit ovat matriiseja, joissa on yksi rivi.
Pystyvektorit ovat matriiseja, joissa on yksi sarake.
Matriisin alkiot aij indeksoidaan siten, ett
ensimminen indeksi i ilmoittaa rivin
toinen indeksi j ilmoittaa sarakkeen.
Indeksointi alkaa luvusta 1.

MATLAB Osa 1

16

3.1 Matriisien sytt


Matriisit sytetn hakasulkujen vliin vaakariveittin seuraavasti:
rivin alkiot erotetaan toisistaan vlilynnill tai pilkulla
rivit erotetaan toisistaan Enterin painalluksella tai puolipisteell.
>> A=[1 2 3
4 5 6
7 8 9]
A =
1
4
7

2
5
8

3
6
9

>> B=[-3,2,0;4,4,-2]
B =
-3
4

2
4

0
-2

Sytetn viel vaaka- ja pystyvektorit


>> u=[1 0 -3]
u =
1

-3

>> v=[1;-4;-6]
v =
1
-4
-6

Matriisin alkioita sytettess lausekkeissa ei saa olla ylimrisi vlilyntej, koska matriisin
alkiot voidaan erottaa toisistaan mys vlilynnill.
>> C=[2+exp(1) 2+3i]
A =
4.7183

% Ei ylimrisi vlilyntej
2.0000 + 3.0000i

>> C=[2 + exp(1) 2 + 3i] % Operaattorit erotettu vlilynneill: oikein


A =
4.7183
2.0000 + 3.0000i
>> C=[2 +exp(1) 2 +3i]
% Ylimrisi vlilyntej: vrin!
A =
2.0000
2.7183
2.0000
0 + 3.0000i

Merkint [ ] tarkoittaa tyhj matriisia, jossa ei ole yhtn alkiota. MATLABissa voidaan mritell tyhj matriisi, jota voidaan tydent myhemmin.
>> C=[]
C =
[]

Matriisin alkioihin viitataan ilmoittamalla rivi ja sarake, jolla alkio sijaitsee. Seuraavassa on tulostettu matriisin A 2. rivin 1. alkio:

MATLAB Osa 1

17

>> A(2,1)
ans =
4

Vektorin alkioihin voidaan viitata yhdell indeksill:


>> u(3)
ans =
-3

Matriisin riveihin ja sarakkeisiin viitataan seuraavasti:


A(i, :) matriisin A i:s rivi
A(:, j) matriisin A j:s sarake
Matriisin A 2. rivi ja 3. sarake:
>> A(2,:)
ans =
4

>> A(:,3)
ans =
3
6
9

Sisisesti matriisi on tallennettu pystyvektorina asettamalla sarakkeet perkkin. Matriisin alkioihin voidaan siis aina viitata mys yhdell indeksill. Komento A(:) tulostaa matriisin pystyvektorina.
>> A
A =
1
4
7

2
5
8

3
6
9

>> A(:)
ans =
1
4
7
2
5
8
3
6
9
>> A(6)
ans =
8

Matriisin kertaluku saadaan selville komennolla size. Komento antaa tulokseksi 12-matriisin,
jonka alkiot sisltvt matriisin kertaluvun.
>> size(B)
ans =
2
3

MATLAB Osa 1

18

Vektorin dimensio saadaan selville komennolla length:


>> length(v)
ans =
3

Seuraava komento tallentaa matriisin rivien mrn muuttujaan m ja sarakkeiden mrn muuttujaan n.
>> [m,n]=size(B)
m =
2
n =
3

Seuraavassa taulukossa on esitetty matriisinluontikomentoja:


Komento
eye(n)

Toiminto

eye(m,n)

mn-yksikkmatriisi: matriisi, jonka lvistjll on ykksi, muualla nollia

eye(size(A))

yksikkmatriisi, jolla on sama kertaluku kuin matriisilla A

zeros(n)

nn-matriisi, jonka alkiot ovat nollia

zeros(m,n)

mn-matriisi, jonka alkiot ovat nollia

nn-yksikkmatriisi

zeros(size(A)) nollamatriisi, jolla on sama kertaluku kuin matriisilla A


ones(n)

nn-matriisi, jonka alkiot ovat ykksi

ones(m,n)

mn-matriisi, jonka alkiot ovat ykksi

ones(size(A))

matriisi, jonka alkiot ovat ykksi ja jolla on sama kertaluku kuin A:lla

ESIMERKKEJ.
>> eye(3)
ans =
1
0
0

0
1
0

0
0
1

>> x=[2 -3 7 1]; zeros(size(x))


ans =
0
0
0
0
>> 15*ones(1,9)
ans =
15
15
15

15

15

15

15

15

15

TEHTVI.
1. Muodosta 157-matriisi, jonka kaikki alkiot ovat lukuja 3.
3.1.1 Satunnaismatriisit
Komento rand antaa satunnaisluvun, joka on tasaisesti jakautunut vlill [0, 1] . Satunnaismatriiseja, joiden alkiot ovat tasaisesti jakautuneet vlill [0, 1] , voi luoda komennoilla

MATLAB Osa 1

19

rand(n): nn-satunnaismatriisi.
rand(m,n): mn-satunnaismatriisi
rand(size(A)): satunnaismatriisi, jolla on sama kertaluku kuin matriisilla A
Vastaavasti komennolla randn saadaan satunnaislukuja, jotka ovat N(0,1)-normaalijakautuneita.
ESIMERKKEJ. Muodostetaan 35-matriisi, jonka alkiot ovat tasan jakautuneet vlill
[ 10,10] .
>> a=-10; b=10;
>> x=a+(b-a)*rand(3,5)
x =
9.0026
-5.3772
2.1369

-0.2804
7.8260
5.2419

-0.8706
-9.6299
6.4281

-1.1059
2.3086
5.8387

8.4363
4.7641
-6.4747

Muodostetaan 27-satunnaismatriisi, jonka alkiot ovat tasan jakautuneita kokonaislukuja vlill


0..9:
>> floor(10*(rand(2,7)))
ans =
6
9
2
7
2
5
3
1

8
5

1
0

5
3

Muodostetaan satunnaisvektori, jonka alkiot ovat tasan jakautuneita kokonaislukuja vlill 5..12.
Koska komento 5+(13-5)*rand tuottaa vlill [5,13]] tasan jakautuneita satunnaislukuja, saadaan vlill 5..12 tasan jakautuneita kokonaislukuja komennolla floor(5+8*rand). Muodostetaan 7-vektori:
>> floor(5+8*rand(1,7))
ans =
7
6
5
10

12

Satunnaislukujen arvo mrytyy satunnaislukugeneraattorin sisisest tilasta. Komento


s = rand(state);
lukee satunnaislukugeneraattorin tilan muuttujan s. Komento
rand(state,s);
asettaa satunnaislukugeneraattorin tilaan s.
Satunnaislukugeneraattorin voi
alustaa alkutilaan komennolla rand(state,0);.
alustaa uuteen satunnaiseen tilaan komennolla rand(state,sum(100*clock));.
ESIMERKKEJ. Muodostetaan samat satunnaisluvut kahteen kertaan
>> s=rand('state');
>> rand(1,7)

MATLAB Osa 1

20

ans =
0.6648

0.8900

0.2391

0.2786

0.1722

0.5253

0.1304

0.2391

0.2786

0.1722

0.5253

0.1304

>> rand('state',s);
>> rand(1,7)
ans =
0.6648

0.8900

TEHTVI

1. Muodosta 34-matriisi, jonka alkiot ovat tasan jakautuneet vlill [2, 5]


2. Muodostetaan 17-satunnaismatriisi, jonka alkiot ovat tasan jakautuneita kokonaislukuja
vlill 4..10.
3. Toteuta MATLABilla lottoarvonta. Lotossa arvotaan 7 lukua vlilt 1 39: Muodosta satunnainen 7-vektori, jonka alkiot ovat satunnaisia lottonumeroita. Jos joukossa on samoja lukuja
suorita arvonta uudestaan. Lajittele luvut suuruusjrjestykseen komennolla sort (ks helppi).
Lottoarvonnassa on tietenkin syyt alussa alustaa satunnaislukugeneraattori satunaiseen tilaan.
4. Toteuta MATLABilla veikkausarvonta. Veikkauksessa on 12 kohdetta, joissa kussakin jokin
merkinnist 1, x, 2. Toteuta tm Matlabilla korvaamalla x luvulla 0. Muodosta siis satunainen 12-pystyvektori, jonka alkiot ovat satunnaislukuja 0, 1, 2. Tsskin on tietenkin syyt
alussa alustaa satunnaislukugeneraattori satunaiseen tilaan.

3.2 Vektorien sytt


MATLABissa kaksoispisteell on trke merkitys. Edell oli jo esill kuinka matriisin rivi- ja
sarakevektorit muodostetaan kaksoispistett kytten. Mys vektoreiden muodostamisessa voidaan kytt kaksoispistett.
Vaakavektoreita voidaan luoda seuraavasti:
a:b on vektori, jonka alkiot muodostavat lukujonon a, a + 1, a + 2, , lukuun b asti. Tuloksena on tyhj matriisi [ ], jos a > b .
a::b on vektori, jonka alkiot muodostavat lukujonon a, a + , a + 2, lukuun b asti.
Tuloksena on tyhj matriisi [ ], jos lisys on rajoihin nhden vrnmerkkinen.

linspace(a,b) on vektori, joka koostuu 100:sta vlill [a, b] tasavlisesti olevasta luvusta
a, c 2 , c3 , , c99 , b .
linspace(a,b,n) on vektori, joka koostuu n:sta vlill [a, b] tasavlisesti olevasta luvusta.
Pystyvektori saadaan transponoimalla vaakavektori: jos v on vaakavektori, niin v on pystyvektori1.
ESIMERKKEJ
>> v1 = 2:8
v1 =
1

Transpoosia ksitelln tarkemmin myhemmin.

MATLAB Osa 1
2

21
8

>> v2 = 1.2: 7.9


v2 =
1.2000
2.2000

3.2000

4.2000

5.2000

6.2000

>> v3 = 1.2:0.5:4.1
v3 =
1.2000
1.7000

2.2000

2.7000

3.2000

3.7000

>> linspace(1.2,4.1,6)
ans =
1.2000
1.7800

2.3600

2.9400

3.5200

4.1000

7.2000

>> v = (1:3:10)'
v =
1
4
7
10

TEHTVI.

1. Muodosta vaakavektori, jonka alkiot ovat nousevassa jrjestyksess vlill [ 2, ] luvun


0,01 vlein.

2. Muodosta vaakavektori, jonka alkiot ovat laskevassa jrjestyksess vlill [ 2, ] luvun


0,01 vlein.
3. Muodosta pystyvektori, jonka alkioiden mr on 20 ja alkiot ovat tasavlisesti vlill [1,3].

3.3 Osamatriisit ja lohkomatriisit


Matriisin A osamatriisilla tarkoitetaan matriisia, joka on muodostettu matriisin A alkioista. Matriisin A alimatriisi on osamatriisi, jossa alkioiden jrjestys on sama kuin matriisissa A.
Seuraavaan taulukkoon on koottu mn-matriisi A osamatriisin muodostuskomentoja. Osa nist
on ollut esill jo aiemmin.
Komento
A(i,j)

Toiminto
i:nnen rivin ja j:nnen sarakkeen alkio

A(i,:)

i:s rivi

A(:,j)

j:s sarake

A(i:k,:)

Alimatriisi, joka koostuu riveist i, i+1, , k

A(:,j:k)

Alimatriisi, joka koostuu sarakkeista j, j+1, , k

A(i:k,j:p)

Alimatriisi, joka koostuu riveist ik ja sarakkeista jp.

A(:)

Pystyvektori, joka on saatu asettamalla matriisin A sarakkeet perkkin.

A(j:k)

Vektorin A(:) alkiot jk vaakavektorina.

A([i1,i2,],:)

Osamatriisi, joka koostuu riveist i1, i2,

A(:,[j1,j2,])

Osamatriisi, joka koostuu sarakkeista j1, j2,

A([i1,i2,],[j1,j2,]) Osamatriisi, joka koostuu riveist i1, i2, ja sarakkeista j1, j2,

MATLAB Osa 1
ESIMERKKEJ.
>> A=[1 2 3; 4 5 6; 7 8 9]
A =
1
4
7

2
5
8

3
6
9

>> A(2:3,:)
ans =
4
7

5
8

6
9

>> A([3,2],1:2)
ans =
7
4

8
5

Avainsana end tarkoittaa indeksin viimeist arvoa, end 1 viimeist edellist


>> A(end,:)
ans =
7
8

>> A(end-1,:)
ans =
4
5

Matriisista A poistetaan
i:s rivi komennolla A(i,:) = [ ]
j:s sarake komennolla A(:,j) = [ ]
>> A(2,:)=[]
A =
1
2
7
8

3
9

Matriisin osa voidaan muuttaa toiseksi sijoituskskyll.


>> A=[1:4;5:8]
A =
1
5

2
6

3
7

4
8

>> A(:,3:4)=eye(2)
A =
1

22

MATLAB Osa 1
5

23

Lohkomatriisi on matriisi, jonka alkiot ovat matriiseja. Alkioina olevien matriisien on oltava
kertaluvultaan yhteen sopivia. Nin muodostuu isompi matriisi, jonka alimatriiseja lohkot ovat.
Lohkomatriiseja muodostetaan samaan tapaan kuin tavallisia matriiseja.
>> B=[1 2;3 4]
B =
1
2
3
4
>> [B,zeros(2);eye(2),10*B]
ans =
1
2
0
0
3
4
0
0
1
0
10
20
0
1
30
40

Sopivaa kertalukua olevia matriiseja voidaan asettaa


pllekkin kytten operaattorina rivinvaihtomerkki ;
perkkin kytten operaattorina vlilynti tai ,
>> A=rand(2,3)
A =
0.8132
0.1389
0.0099
0.2028

0.1987
0.6038

>> B=ones(size(A))
B =
1
1
1
1
1
1
>> C=[A;B]
C =
0.8132
0.0099
1.0000
1.0000

0.1389
0.2028
1.0000
1.0000

0.1987
0.6038
1.0000
1.0000

>> D=[A,B]
D =
0.8132
0.0099

0.1389
0.2028

0.1987
0.6038

1.0000
1.0000

1.0000
1.0000

1.0000
1.0000

Tyhjn matriisin [ ] alle tai pern voidaan asettaa millainen matriisi tahansa:
>> [[],D]
ans =
0.8132
0.0099

0.1389
0.2028

0.1987
0.6038

1.0000
1.0000

1.0000
1.0000

TEHTVI.
1. Muodosta lohkomatriiseja kytten kuvan kaltainen matriisi

1.0000
1.0000

MATLAB Osa 1
1
0

0
0

0
1
0
0
0
0

0
0
1
0
0
0

5
5
5
0
0
1

5
5
5
0
1
0

24

5
5
5

1
0

jonka lohkot ovat kertalukua 77.

3.4 Matriisioperaatiot
Seuraavassa esitelln matriisilaskennasta tutut matriisilaskennan perusoperaatiot yhteenlasku ja
kertolasku.
Esimerkeiss kytetn seuraavia matriiseja:
>> A = [1 2 3; 4 5 6; 7 8 9]
A =
1
2
3
4
5
6
7
8
9
>> B = [3 -2 1; 5 3 -2; 4 1 0]
B =
3
-2
1
5
3
-2
4
1
0

Matriisien yhteenlasku ja vhennyslasku on mritelty, jos matriiseilla on sama kertaluku. Yhteenlaskussa vastinalkiot lasketaan yhteen; vhennyslaskussa vastinalkiot vhennetn.
>> A+B
ans =
4
9
11

0
8
9

4
4
9

Yhteenlaskun erikoistapauksena on skalaarin lisminen. Tllin skalaari listn jokaiseen


alkioon.
>> A+10
ans =
11
14
17

12
15
18

13
16
19

Kaksi matriisia voidaan kertoa keskenn, jos kertojassa on yht monta saraketta kuin kerrottavassa rivej. Tulon AB i:nnen rivin ja j:nnen sarakkeen alkio on A:n i:nnen rivin ja B:n j:nnen
sarakkeen vastinalkioiden tulojen summa.
Tulossa AB on
yht monta rivi kuin matriisissa A
yht monta saraketta kuin matriisissa B
Kertolaskun merkkin on *.

MATLAB Osa 1
>> A*B
ans =
25
61
97

7
13
19

25

-3
-6
-9

Kertolaskun erikoistapaus on skalaarilla kertominen. Tllin skalaarilla kerrotaan jokainen


matriisin alkio.
>> -10*A
ans =
-10
-20
-40
-50
-70
-80

-30
-60
-90

Nelimatriisin positiivisella kokonaislukupotenssilla tarkoitetaan nelimatriisin kertomista


k kpl

itselln seuraavasti: A = AA
k

A . Potenssiin korotuksen merkkin on ^.

>> A^4
ans =
7560
17118
26676

9288
21033
32778

11016
24948
38880

>> A*A*A*A
ans =
7560
17118
26676

9288
21033
32778

11016
24948
38880

Matriisin transpoosissa muutetaan rivit sarakkeiksi. Reaalialkioisen matriisin A transpoosi on


A:
>> A=[-3,0,4;5,1,-2]
A =
-3
0
4
5
1
-2
>> A'
ans =
-3
0
4

5
1
-2

Matriisi, jonka sarakkeina ovat annetut vektorit:


>> C=[1:4;5:8;9:12]'
C =
1
2
3
4

5
6
7
8

9
10
11
12

Itse asiassa A ottaa matriisin alkioista mys kompleksikonjugaatit. Pelkk transpoosi muodostetaan komennolla A.:

MATLAB Osa 1

26

>> A=[-i,2+5i;7+2i,4]
A =
0 - 1.0000i
2.0000 + 5.0000i
7.0000 + 2.0000i
4.0000
>> A'
ans =
0 + 1.0000i
2.0000 - 5.0000i

7.0000 - 2.0000i
4.0000

>> A.'
ans =
0 - 1.0000i
2.0000 + 5.0000i

7.0000 + 2.0000i
4.0000

Reaalialkioisille matriiseille nm ovat tietenkin samat.

3.5 Taulukko-operaatiot
Aritmeettisia operaatioita, jotka suoritetaan kahden matriisin vastinalkioiden kesken sanotaan
taulukko-operaatioiksi tai alkioittaisiksi operaatioiksi. Ne vastaavat taulukkolaskennassa
kytettyj operaatioita. Taulukko-operaatioissa matriisien kertalukujen on oltava samoja. Taulukko-operaatio saadaan laittamalla piste operaattorin eteen.
Esimerkeiss kytetn seuraavia matriiseja:
>> A = [1 2; 3 4], B = [5 6; 2 -3]
A =
1
2
3
4
B =
5
2

6
-3

Matriisien yhteen- ja vhennyslasku ovat mys taulukko-operaatioita.


Alkioittaisessa kertolaskussa lasketaan vastinalkioiden tulo. Operaatiota merkitn .*
>> A.*B
ans =
5
6

12
-12

Alkioittaisessa jakolaskussa lasketaan vastinalkioiden osamr. Alkioittaisia jakolaskuja on


kaksi: jako oikealta ./ ja jako vasemmalta .\
>> A./B
ans =
0.2000
1.5000

0.3333
-1.3333

>> A.\B
ans =
5.0000
0.6667

3.0000
-0.7500

Alkioittaisen jakolaskun erikoistapaus on skalaarin jakaminen matriisilla: tuloksena on jakajamatriisin kokoinen matriisi, joka saadaan jakamalla skalaari alkioittain jakajamatriisilla.

MATLAB Osa 1
>> 4./A
ans =
4.0000
1.3333

27

2.0000
1.0000

Alkioittaisessa potenssiin korotuksessa korotetaan kantamatriisi alkioittain eksponenttimatriisin osoittamaan potenssiin. Operaatiota merkitn .^
>> A.^B
ans =
1.0000
9.0000

64.0000
0.0156

ESIMERKKI. Olkoon
>> x=1:5
x =
1

Lasketaan funktion

sin x
arvo vektorin x alkioilla. Huomaa taulukko-operaatioiden kytt!
1+ x2

>> sin(x)./(1+x.^2)
ans =
0.4207
0.1819

0.0141

-0.0445

-0.0369

Alkioittaisen potenssiin korottamisen erikoistapauksia on kaksi:


eksponentti on skalaari. Tllin matriisin jokainen alkio korotetaan skalaarin osoittamaan potenssiin.
kantamatriisi on skalaari. Tllin tuloksena on eksponenttimatriisin kokoinen matriisi,
joka saadaan korottamalla kantaluku alkioittain eksponenttimatriisin osoittamaan potenssiin.
>> A.^2
ans =
1
9

4
16

>> 2.^A
ans =
2
8

4
16

Matriisi A voidaan
peilata vaakasuunnassa komennolla fliplr(A)
peilata pystysuunnassa komennolla flipud(A)
kiert positiiviseen suunta 90 komennolla rot90(A)
>> A=[1:4;5:8;9:12]
A =
1
2
3
5
6
7

4
8

MATLAB Osa 1
9

10

11

12

>> fliplr(A)
ans =
4
3
8
7
12
11

2
6
10

1
5
9

>> flipud(A)
ans =
9
10
5
6
1
2

11
7
3

12
8
4

>> rot90(A)
ans =
4
8
3
7
2
6
1
5

12
11
10
9

28

TEHTVI.
1. Muodosta vektori x, joka koostuu vlill 110 olevista luvuista 0.5:n vlein. Luvut ovat siis
1; 1,5; 2; 2,5; , 10. Tee tm yhdell komennolla. Laske seuraavien funktioiden arvot vektorin x alkioilla.
5x 3
1
x sin x
b)
c)
d)
x2
x
2x 2 + ex
2. Komento fliplr knt matriisin sarakevektorit vastakkaiseen jrjestykseen. Toteuta komento lohkomatriisikomentoja ja avainsanaa end kytten. Testaa tulos.
3. Komento flipud knt matriisin rivivektorit vastakkaiseen jrjestykseen. Toteuta komento
lohkomatriisikomentoja ja avainsanaa end kytten. Testaa tulos.
a)

3.5.1 Taulukkofunktiot
Taulukko-operaatioina voidaan pit luvussa 2.3 esiteltyj matematiikan perusfunktioita, koska ne operoivat matriisiin alkioittain.
>> sqrt(A)
ans =
1.0000
1.7321

1.4142
2.0000

>> exp(A)
ans =
2.7183
20.0855

7.3891
54.5982

>> sin([pi,0;pi/2,-pi/4])
ans =
0.0000
0
1.0000
-0.7071

Esitetn viel muutama taulukkolaskennan tyyppinen funktio:

MATLAB Osa 1

29

Funktio
sum(x)

Toiminto
vektorin x alkioiden summa

prod(x)

vektorin x alkioiden tulo

max(x), min(x)

vektorin x suurin (pienin) alkio

mean(x)

vektorin x alkioiden keskiarvo

std(x)

vektorin x alkioiden keskihajonta

cumsum(x)

vektorin x kumuloituva summa vektorina

sort(x)

lajitellaan vektorin x alkiot nousevaan suuruusjrjestykseen

Funktion cumsum(x) kumuloituva summa tarkoittaa seuraavaa:


cumsum(x) = [x(1), x(1)+x(2), x(1)+x(2)+x(3), ]
Jos edell argumenttina on matriisi, suoritetaan laskut erikseen matriisin sarakevektoreille
ja tulos esitetn vaakavektorina. Funktioiden cumsum ja sort tapauksessa tulos on samaa
kertalukua oleva matriisi, muissa tapauksissa tavallinen vaakavektori.
ESIMERKKEJ. Kytetn esimerkeiss satunnaismatriiseja, joissa alkiot ovat vlille -99
tasan jakautuneita satunnaislukuja. Koska komento 19*rand-9 tuottaa vlill [ 9,10] olevia
satunnaislukuja saadaan nm aikaiseksi komennolla floor(19*rand-9)
>> x=floor(19*rand(1,10)-9)
x =
-2
-9
6
2

-7

-9

-4

>> sum(x)
ans =
-15
>> mean(x)
ans =
-1.5000
>> cumsum(x)
ans =
-2
-11

-5

-3

-2

-2

-11

-15

>> sort(x)
ans =
-9
-9

-7

-4

-2

>> A=floor(19*rand(3,4)-9)
A =
9
8
6
6
-1
-4
7
7
9
7
-9
-3
>> cumsum(A)
ans =
9
8
8
4
17
11

6
13
4

>> cumsum(A(:))'

6
13
10

MATLAB Osa 1
ans =
9

17

25

>> max(A)
ans =
9

>> max(A(:))
ans =
9

21

28

34

30
41

32

38

45

42

% Matriisin A suurin alkio

Jos vektorin alkioissa on NaN, niin komennon sum tulos on NaN. Tllin on kytettv komentoa1 nansum, joka jtt arvot NaN huomioimatta. Vastaavasti on komennot nanmax, nanmin,
nanmean ja nanstd.
>> A=[1:4;2 NaN,0, 4;-5,3,NaN, 1]
A =
1
2
3
4
2
NaN
0
4
-5
3
NaN
1
>> sum(A)
ans =
-2
NaN

NaN

>> nansum(A)
ans =
-2
5

Kertomafunktio n! voidaan laskea tulona prod(1:n) tai suoraan komennolla factorial(n)


>> prod(1:10)
ans =
3628800
>> factorial(10)
ans =
3628800

Komento
mod(x, y)
muodostaa reaalilukujen x ja y jakolaskun x/y jakojnnksen. Tarkemmin
mod( x, y ) = x floor ( x / y ) y
Tulos on samanmerkkinen kuin y. Komennossa x ja y voivat olla mys samaa kertalukua olevia
matriiseja, jolloin jakojnns muodostetaan alkioittain.
ESIMERKKEJ.
>> a=[12,-12,12,-12]
a =
12
-12
12
-12

Komennot lytyvt Statistic Toolboxista.

MATLAB Osa 1
>> b=[5,5,-5,-5]
b =
5
5
-5

-5

>> mod(a,b)
ans =
2
3

-2

-3

31

>> x=12.4; y=5.1;


>> mod(x,y)
ans =
2.2000
>> %Tarkistetaan:
>> x/y
ans =
2.4314
>> floor(ans)
ans =
2
>> x-ans*y
ans =
2.2000

Komento magic(n) muodostaan taikanelin. Taikaneli on nxn-matriisi, jossa lukujen summa


on sama joka vaaka- ja pystyriveill. Mys nelin lvistjien summa on sama.
ESIMERKKI. Tarkistetaan summat 5x5-taikanelille. Seuraavassa on kytetty komentoa diag,
joka muodostaa matriisin lvistjalkioista koostuvan pystyvektorin.
>> A=magic(5)
A =
17
24
23
5
4
6
10
12
11
18

1
7
13
19
25

8
14
20
21
2

15
16
22
3
9

>> sum(A)
%Sarakkeiden summat
ans =
65
65
65
65
65
>> sum(A')
ans =
65
65

%Rivien summat

>> sum(diag(A))
ans =
65

65

65

%Lvistjn alkioiden summa

>> sum(diag(fliplr(A)))
ans =
65

TEHTVI

65

%Lvistjsumma vas. alanurk. oik. ylnurkk.

MATLAB Osa 1

32

1. Muodosta 77-satunnaismatriisi, jonka alkiot ovat kokonaislukuja vlill 016. Mrit


matriisin sarakkeiden ja rivien keskiarvot. Mrit mys matriisin kaikkien alkioiden keskiarvo. Tarkista tm laskemalla kaikkien alkioiden summa ja jakamalla se matriisin alkioiden mrll.
2. Matriisin A suurin alkio voidaan mritt komennolla max(A(:)). Kytten komentoa max
suurin alkio voidaan mritt mys toisin, miten? Ohje: mieti komennon max tulosta matriisille. Kokeile komentoa!
3. Selvit kokeilemalla, mik on suurin luku, jonka kertoma voidaan laskea MATLABilla?

4. LUKUJEN ESITYSMUODOT
MATLAB suorittaa laskut pasiassa kaksoistarkkuuden liukuluvuilla jolloin laskentatarkkuus
on noin 16 numeroa. Lukujen esitysmuoto ei vaikuta laskennan tarkkuuteen.
Luvut esitetn oletusarvoisesti kokonaislukuina tai 4-desimaalisina desimaalilukuina. Oletusarvo palautetaan komennolla
format.
Jos matriisin kaikki alkiot ovat kokonaislukuja, niin ne esitetn kokonaislukuina. Jos ainakin
yksi alkio on desimaaliluku, niin kaikki alkiot esitetn desimaalilukuina.
Komennolla
format tyyppi,
muutetaan lukujen esitysmuoto muotoon tyyppi. Seuraava taulukko sislt suuntaa-antavan
esitysmuotojen kuvauksen
Tyyppi
short

Kuvaus
5-numeroinen esitysmuoto, oletusarvo

short e

5-numeroinen eksponenttimuoto

short g

Parempi 5-numeroisesta kiintest ja desimaalimuodosta

long

15-numeroinen skaalattu esitysmuoto

long e

15-numeroinen eksponentti

long g

Parempi 5-numeroisesta kiintest ja desimaalimuodosta

rat

Pienten kokonaislukujen osamr

loose

Vlj muoto, lis rivinvaihto luettavuuden parantamiseksi

compact

Kompakti esitys muoto. Vastakohta muodolle loose

bank

Pankkimuoto: kaksi desimaalia

Positiivinen luku: +, negatiivinen luku: -, nolla: tyhj. Kytetn isojen


matriisien muodon esittmiseen.

hex

Heksadesimaaliluvut.

ESIMERKKEJ.
>> format short
>> pi
ans =
3.1416

MATLAB Osa 1
>> format short e
>> pi
ans =
3.1416e+000
>> format short g
>> pi
ans =
3.1416
>> format long
>> pi
ans =
3.14159265358979
>> format long e
>> pi
ans =
3.141592653589793e+000
>> format long g
>> pi
ans =
3.14159265358979
>> format rat
>> pi
ans =
355/113
>> format bank
>> pi
ans =
3.14
>> format +
>> [2 -3 4; -1 0 4]
ans =
+-+
- +
>> format
>> pi
ans =
3.1416

%Palautetaan lhttilanne

TEHTVI.
1. Kuinka paljon luvun rationaaliarvo eroaa luvun desimaaliarvosta?

33

You might also like