155GIT1 / 1. cvičení

Z GeoWikiCZ

První seznámení s Matlabem a GNU Octave - proměnné, matice, vektory, indexování, skripty

Náplň cvičení

Grafické uživatelské rozhraní GNU Octave
  • nápověda, help, doc
  • skalární hodnoty
  • proměnné, pole, matice (dvourozměrné)
    • základní operace s proměnnými, inkrementace
    • vektor, sloupcový, řádkový
  • matice, dimenze, ukázka konzistence
  • vytváření skriptů
    • File -> New -> Script
    • spuštění: F5
    • výstup se vypisuje do Command Window
    • skripty z příkazové řádky • edit, run

Ukázky

Tipy
  • Pokud je příkaz ukončen středníkem, tak hodnoty nevypisuje
  • Více příkazů lze v jedné řádce oddělit čárkou anebo středníkem
  • Dlouhý příkaz lze rozdělit na více řádků pomocí ...
  • Pohyb v historii příkazů (klávesové šipky nahoru a dolu)
  • Doplňování příkazů pomocí klávesy TAB (dvojstisk)
  • Komentáře začínají znakem % (v Octave i znakem #) a jsou ukončeny koncem řádky
  • Rozsah numerických datových typů realmin, realmax
  • Textové řetězce jsou ohraničeny jednoduchými uvozovkami (v Octave i dvojitými uvozovkami)
  • Nastavení formátu výpisu numerických hodnot:
    • format long - výpis na plný počet desetinných míst
    • format short - výpis na omezený počet desetinných míst (defaultní)

Skalární hodnoty

(matice o dimenzi 1x1)

 s = 1
 c = 2.3   % pozor, nutno používat desetinnou tečku!
 a = 3,9   % čárka odděluje příkazy

Základní matematické operace

(+, -, *, /, závorky, mocnina, odmocnina)

 s = 1
 t1 =  s + 4  * 2  % násobení, dělení má prioritu před sčítáním, odčítáním  (t1 = 9)
 t2 = (s + 4) * 2  % operátor závorka má vždy nejvyšší prioritu             (t2 = 10)
 u  = t1 / t2 ^ 2  % mocnina má prioritu před +, -, *, /                     (u = 0.09)
 v1 = t1^(1/2)     % zápis druhé odmocniny
 v2 = sqrt(t1)     % druhá odmocnina pomocí interní matematické funkce Matlabu/Octave

Vektory

(řádkový vs. sloupcový)

 a = [3 2 5]  % taktéž a = [3,2,5]
 b = [2;4;6]
 c = a*b
 a'           % transpozice
 a*a
 a*a'

Matice

(musí být obdélníková)

 A = [1 2 3; 3 2 1;-1 -2 -3]
 B = [1 2 3; 4 5; 6]

(náhodné hodnoty)

 C = rand(3, 4)

(indexování)

 A(1, 2)
 A(4)

(násobení)

 B = 2 * A
 A*B
 B'         % transpozice
 A*B'

(dimenze)

 rows(C)    % pouze v Octave
 columns(C) % pouze v Octave
 length(C)
 size(C)
 [r, c] = size(C)
 size(C,1)
 size(C,2)

Úlohy