[
Seuraava] [Sisällys]

Matlab laskimena

Matlab käynnistyy ikonia klikkaamalla tai Unix (Linux)-koneissa myös komentoikkunasta komennolla matlab .

Kokeile käynnistystä!

Matlab-komentoja voit ruveta heti kirjoittamaan komentoikkunaan ("command window"). Voit myös vilkaista Lyhyen oppaamme "perusteet-osaa".

Oppaamme helppilinkit

Muotoa xxx olevat viitteet, missä xxx on yleensä jonkin Matlab-funktion nimi, ovat linkkejä Matlab:n helppitietokantaan ja näyttävät saman tekstin, joka saadaan Matlab:ssa komennolla doc xxx . Älä turhaan klikkaa yllä mainittua xxx:ää, mutta seuraavaa jo kannattaa: exp .

Aritmeettiset operaatiot

Matlab:n aritmetiikka noudattaa tavanomaisia sääntöjä tavanomaisin operaatiosymbolein: + - * ^ / \ . Kaksi viimeistä suorittavat jakolaskun. Aluksi harjoittelemme laskentoa pelkillä skalaareilla, silloin molemmat jakolasku"kenot" suorittavat saman operaation.

Harjoittelua

  1. Suorita laskentoa Matlab-komentoikkunassa.
  2. Kirjoita lauseke 3*(23 + 14.7 -4/6)/3.5
    Hups, huomaat, että 4/6:n sijasta piti olla 4.6 . Näppää nuoli ylös-näppäintä ja editoi kaava oikeaksi.
  3. Katso "command history"-ikkunasta, mitä tuli tehdyksi.

Joitakin matemaattisia funktioita

Matlabissa on kattava joukko matemaattisia funktioita. Täydellisen luettelon ns. alkeisfunktioista saat komennolla help elfun (Elementary mathematical functions)

Eksponenttifunktio: exp
Luonnollinen logaritmi: log
2-kantainen logaritmi: log2
10-kantainen logaritmi: log10
Trigonometriset funktiot: sin, cos,tan,cot
Käänteisfunktiot: asin, acos, atan, atan2, ...
Huom!
>> pi
ans =
    3.1416      % Oletusnäyttö
>> format long  % Täyspitkä näyttö
>> pi           
ans =
   3.141592653589793
>> format short % Paluu lyhyeen näyttöön
>> sin(pi/4)
ans =
    0.7071

Harjoittelua

  1. Laske lukujen 10, 100, 1000 kymmenkantaiset logaritmit.
  2. Matlab ei tunne Neperin lukua e. Määrittele muuttuja e, jolla on arvonaan Neperin luku. Muuttujan määrittely tapahtuu =-merkillä, siis:
    >> e= ...
  3. Laske sin(30), missä 30 tarkoittaa asteita. Suorita sitten komento format rational. Napsauttele nuolinäppäimellä edellinen laskentakomento suoritukseen ja anna ENTER:iä. Hyviin tapoihin kuuluu palauttaa oletustila komennolla format.

Muuttujat

Edellä jo esiintyi sijoituslause
nimi = arvo    % Muuttujan arvo näytetään.
                      [%-merkkiä seuraava teksti on kommenttia.]
      
Jos komento päätetään puolipisteeseen, tulosta ei näytetä ruudulla.
nimi = arvo;    % Muuttujan arvoa ei näytetä.
Vakionimiä: pi, i, j, ans, eps, Inf, Nan

Kts. esim. >>doc ans

Huomaa, että vakionimet eivät ole varattuja nimiä. Niille saa sijoittaa omia arvojaan. Yleensä se ei ole suositeltavaa, poikkeuksen muodostavat i ja j , joiden käyttöä vektorien ja matriisien indekseinä ei mikään mahti voi kieltää. clear i palauttaa oletusarvon.

>> i=1
i =
       1       
>> j=2
j =
       2       
>> clear i j   % Palautetaan i:n ja j:n oletusarvot.
>> i
ans =
       0        +    1i      
>> j
ans =
       0        +    1i  

Ajotiedosto ja työn dokumentointi

Matlab-työ ei automaattisesti tallennu. Uusissa versioissa on "command history"-ikkuna, jossa saadaan varsin pitkä historia annetuista komennoista.

Hyödylliset komennot kannattaa kerätä talteen ns. m-tiedostoon avaamalla File-valikosta "New (blank) m-file". Komennot suorittuvat, kun Matlab-istunnossa kirjoitetaan ao. tiedoston nimi. Jos tiedoston nimi on komennot.m, kirjoitetaan Matlab-istunnossa >> komennot . (Tiedoston on oltava Matlab-polun varrella.) Uusimmissa versioissa (2008 alkaen) suoritus tapahtuu myös painamalla editori-ikkunassa m-tiedoston työkalunauhan vihreää nuolta (keskivaiheilla).

Kaikkein yksinkertaisimmin: F5 -- talletus ja suoritus tai
CTR-ENTER -- "nykykappaleen" suoritus (kts. alla).

Matlab-työn ja dokumentin yhdistelmä

Uusien mahdollisuuksien myötä Matlab-työn suoritus kannattaa siirtää enenevässä määrin komentoikkunasta m-ajotiedostoon. Tiedoston rakenne on tällainen:

% Tiedosto ajo.m
%% Kappaleen 1 otsikko
%
% Tähän väliin selostusta...
% .. ja lisää ...

A=rand(3,3);   % Muodostetaan 3x3-satunnaislukumatriisi
b=ones(3,1);   % Ykköspystyvektori
x=A\b;             % Ratkaistaan yhtälöryhmä: A x = b
...
%% Kappaleen 2 otsikko
...

Kun hiiriosoitin viedään jonkin kappaleen sisään, voidaan tämän kappaleen Matlab-komennot suorittaa CTR-ENTER-painalluksella.

Työn kuluessa on kätevää edetä aluksi pienin kappalein. Se, mikä ennen piti tehdä cut/paste-tyylillä, voidaan nyt hoitaa CTR-ENTER:llä.

Ja tosiaan, komentoikkunaa tarvitaan tulosten ja virheilmoitusten seuraamiseen.

Lopuksi voidaan tehdä mahd. väljempi kappalejako otsikoineen ja ajaa html-dokumentiksi. Myös pdf- ja LaTex-tulokset saadaan komentamalla komentoikkunassa esim.

   >> publish('omafile','pdf')
Esim: (Otetaan vektoreita, funktioita ja grafiikkaa, joista puhutaan tarkemmin jatkossa. Tarkoituksena tässä on valaista Matlab-työskentelyn ja dokumentin laadinnan periaatetteita.)
Avataan Matlab-editori (New m-file) ja kirjoitetaan seuraavat komennot:
%% Tenttipisteiden jakauma
pisteet=[10 11 15 3 29 7 0 9 30 2 1 8 20 22 5 9 23 24];
jarjestyksessa=sort(pisteet)
keskiarvo=mean(pisteet)
hajonta=std(pisteet)
plot(sort(pisteet))
figure
hist(pisteet,6)
shg
Talletetaan tiedostoon tentti.m ja suoritetaan (esim. F5 tai CTR-ENTER) tai kirjoitetaan "vanhanaikaisesti" Matlab-istunnossa sana tentti.
(Pidä huoli, että tiedosto on polun varrella.)

Työstä saadaan html-dokumentti kuvineen ja sisällysluetteloineen klikkaamalla Matlab-editorin FILE-valikon valintaa publish. (Tapahtuu sitten, kun Matlab-tulkin havaitsemat virheet on korjattu.)
Selitykset m-tiedostoissa sijoitetaan %-merkin taakse. Kappalejako saadaan aikaan %%-alulla, samalla syntyy sisällysluettelo. KÄTEVÄÄ, käytä ihmeessä hyväksi harjoitustöissä ym.

Luovutettavat harjoitustehtävät:
>> publish('tiedosto','pdf')
tiedosto.pdf ilmaantuu nykyhakemiston html-alihakemistoon
(jonka publish-komennon ensimmäinen käyttö luo).

Kokeile: Kirjoita ja aja yllä oleva tai jokin muu. Tulos on siis alihakemistossa html (Vau!)

Matlab-oppaissa mainitaan yleensä komento diary. Se alkaa mm. yllä mainittujen mahdollisuuksien valossa edustaa mennyttä aikaa.

Tehtävä: Edellä oleva data on näppäilty aivan "näppimutikassa" ja jakautuma on sen mukainen "mutikka". Teoreettisesti ihanteellisempi jakauma voitaisiin saada jotenkin tähän tapaan:

>> P=12+5*randn(1,200);  % Normaalijakautuneita, keskiarvo=12, hajonta=5.
>> P=round(P);           % Pyöristetään kokonaisluvuiksi.
>> P(P<0)=0;             % Negatiiviset pisteet nollataan
>> P(P>30)=30;           % Suuremmat kuin 30 saavat arvon 30,
>> hist(P,6);shg         % Histogrammi, arvoalue 6:een yhtäsuureen osaan.
Selvitä itsellesi, kokeile erilaisilla parametreilla, tee m-tiedosto ja aja html-dokumentiksi.

Matlab-työn ja dokumentin yhdistelmä

Uusien mahdollisuuksien myötä Matlab-työn suoritus kannattaa siirtää enenevässä määrin komentoikkunasta m-ajotiedostoon. Tiedoston rakenne on tällainen:

% Tiedosto ajo.m
%% Kappaleen 1 otsikko
%
% Tähän väliin selostusta...
% ..
%
A=rand(3,3);
b=ones(3,1);
x=A\b;
...
%% Kappaleen 2 otsikko
...

Kun hiiriosoitin viedään jonkin kappaleen sisään, voidaan tämän kappaleen Matlab-komennot suorittaa CTR-ENTER-painalluksella.

Työn kuluessa on kätevää edetä aluksi pienin kappalein. Se, mikä ennen piti tehdä cut/paste-tyylillä, voidaan nyt hoitaa CTR-ENTER:llä.

Ja tosiaan, komentoikkunaa tarvitaan lähinnä virheilmoitusten ja laskennan tulosten seuraamiseen ja pienimuotoisiin, pikaisiin kokeiluihin.

Lopuksi voidaan tehdä mahd. väljempi kappalejako otsikoineen ja ajaa publish-komennolla (tai valinnalla) html-, pdf- tai latex dokumentiksi.


[Seuraava] [Alkusivu]