[Edellinen] [Seuraava] [Sisällys]

Vektoreita ja grafiikkaa

Matlabin varsinainen voima alkaa näkyä, kun jätetään skalaarit sikseen ja siirrytään vektoreihin ja matriiseihin.

Vektori v=[v1,v2,...,vn] määritellään näin:

     >> v=[v1 v2 ... vn]  
     >> vt=[v1; v2; ... ;vn]  
Erottimina voidaan käyttää välien sijasta/lisäksi pilkkuja. Jos erottimina käytetään puolipisteitä, syntyy pystyvektori.

Kokeile:

  >> a=[1 2 3 4 5]      % Vaakavektori
  >> b=[6;7;8;9;10]     % Pystyvektori
  >> a*b                % Matriisitulo, tässä tapauksessa vektorien sisätulo

Kaksoispiste-operaattori, transpoosi,indeksointi

Edellä olevat voidaan tehdä kätevästi näin:
>> a=1:5; b=(6:10)';   % Puolipiste estää tulostuksen.
Kaksoispiste-operaattorin yleinen muoto:
     alku:lisäys:loppu
Lisäyksen oletusarvo on 1. Toisaalta lisäys voi olla myös negatiivinen, eikä välttämättä edes kokonaisluku.
Tehtävä: Suorita seuraavat komennot. Selvitä mitä ja miksi! Paitsi nuoreen Gaussiin, kiinnitä huomiota erityisesti Matlab-operointiin, kuten
Sijoitus muuttujaan, kaksoispisteen käyttötavat, funktiot length, sum, vektorin alkion poimiminen.
  
L10=1:10
L10kaant=10:-1:1
L10+L10kaant
N=length(L10)
(L10+L10kaant)/2
sum(ans)
sum(L10)   
N*(L10(1)+L10(end))/2
Lisää kaksoispisteen käytöstä tässä lyhyessä
ja
tässä pitemmässä oppaassa.
Kts myös colon (Matlabissa: doc colon.)

Edellä näkyi vektorin alkion poiminta: L10(1) ja L10(end). Tässä end on varattu nimi, jolla saa kätevästi vektorin viimeisen alkion indeksin. (Toinen, hiukan pitempi tapa olisi: N=length(L10); L10(N) .)
Erityisen kätevää on, että vektoria voi indeksoida myös vektorilla, katsopa alla olevaa esimerkkiä (ja suorita mieluusti ja varioiden).

>> satunnaisvek=rand(1,6)

satunnaisvek =

    0.0782    0.4427    0.1067    0.9619    0.0046    0.7749

>> satunnaisvek(2:4)

ans =

    0.4427    0.1067    0.9619

>> satunnaisvek(3:end-1)

ans =

    0.1067    0.9619    0.0046

>> length(satunnaisvek)

ans =

     6
Tehtävä: Avaa uusi m-tiedosto (skripti) vaikkapa alkulukuja.m . Kirjoita siihen komennot, joilla saat selville kaikkien korkeintaan N:n suuruisten alkulukujen lukumäärän ja summan. Aloita tiedosto näin:
   % Selitä, mitä skripti tekee ja vaikka oma nimi, pvm. ym.
   N = 100  
   lkm = ...
   summa= ...  
Apu: help primes (tai doc primes)
help sum .

Myöhemmin: opitaan tekemään funktio-m-tiedostoja, jolloin N voidaan antaa parametrina omalle "alkulukuja"-funktiolle.

Indeksointi, length, clear

Aritmeettiset operaatiot vektoreilla

Edellä laskettiin skalaareilla. Vektorialgebra noudattelee samoja merkintöjä ja sääntöjä yhteen- ja vähennyslaskun sekä skalaarilla kertomisen suhteen (vektoriavaruusoperaatioissa siis).
Kerto- ja jakolaskun sekä potenssiin korotuksen kohdalla on kaksi näkökulmaa:
  1. Matriisilaskusäännöt
  2. Pisteittäiset laskusäännöt (taulukkosäännöt)
Matlab on ennen kaikkea Matriisilaboratorio, siksi etusija on varattu matriisioperaatioille. Siten * ^ / \ tarkoittavat matrisiituloa, potenssia ja "jakolaskuja". Sensijaan vastinalkioittain ("pisteittäin") tapahtuva laskenta suoritetaan lisäämällä piste (.) vastaavan operaatiomerkin eteen. Niinpä vastinalkioittain tapahtuva vektorien u ja v kertolasku on u.*v

Lue tarkemmin tästä (laajemmasta) oppaasta.
Myös lyhyemmässä tällä kohdin on aihetta käsitelty.
Tehtävä: Täydennä alkulukuja.m-tiedostoa lisäämällä alkulukujen neliösumman laskenta (ja aja).

Kuvaajien piirtoa

Lyhyen oppaan grafiikkaluvusta kannattaa aloittaa. Lukaisepa!

Tehtävä Piirrä:

  1. x e-x2 välillä [-2,2].
  2. 1/(1+x2) välillä [-4,4]
  3. sin(2x) sinisellä ja cos(5x) punaisella, välillä [-pi,pi] (samaan kuvaan).
    Merkitse vielä samaan kuvaan sin(2x):n arvot o-merkeillä x:n arvoilla -pi, -pi+h,... -pi+2h, ..., pi, kun h=pi/8.
Kokeile komentoja grid on/off, hold on/off, axis, xlim, ylim, figure, subplot, shg , close all
Tutki toiminta help:stä ja oppaista. Aloita: help plot (tai klikkaa: plot).
Tee omia variaatioita.
  












[Edellinen] [Seuraava] [Alkusivu]