Program Scilab

W programie Scilab działa się właściwie na tablicach liczb o rozmiarze $w\times k$, $w$ jest ilością wierszy, $k$ ilością kolumn. Ważny przypadek szczególny, to tablica o rozmiarze $1\times 1$, utożsamiana z jedyną znajdującą się w niej liczbą.

Konsekwencją takiego podejścia jest ogromna ilość poleceń tworzących tablice.

  • A = [1 2 3;4 5 6] ⇒
    1 2 3
    4 5 6
    Sposób bardzo niewygodny przy tworzeniu dużych tablic – wszystkie elementy musimy wpisać. Średnik jest separatorem wierszy.
  • A = a:b      
    A = 5.2:9.5 ⇒ 5.2  6.2  7.2  8.2  9.2
    Powstaje tablica jednowierszowa (wektor), wyrazy tworzą ciąg arytmetyczny o różnicy 1, pierwszy wyraz jest równy $a$, ostatni ≤ $b$.
  • A = a:r:b      
    A = 5.2:0.7:9.5 ⇒ 5.2  5.9  6.6  7.3  8.  8.7
    Powstaje tablica jednowierszowa (wektor), wyrazy tworzą ciąg arytmetyczny o różnicy $r$, pierwszy wyraz jest równy $a$, ostatni ≤ $b$.
  • A = linspace(a,b,n)      
    A = linspace(0,%pi,5) ⇒ 0.  0.7853982  1.5707963  2.3561945  3.1415927
    Powstaje tablica jednowierszowa (wektor), wyrazy tworzą n-elementowy ciąg arytmetyczny, pierwszy wyraz jest równy $a$, ostatni $b$.
  • A = zeros(w,k)
    B = ones(w,k)
    C = rand(w,k)
    Powstaną trzy tablice o rozmiarze $w\times k$, tablica $A$ zawiera same zera, tablica $B$ same jedynki, a tablica $C$ zawiera liczby losowe z przedziału $[0,1)$.

Opisane wyżej sposoby można łączyć:

E = 1:100 ⇒ 1 2 3 ... 100
F = 101:200 ⇒ 101 102 103 ... 200
A = [E;F] ⇒
  1   2   3 ... 100
101 102 103 ... 200

Często potrzebne są tablice jednokolumnowe, wygodnym narzędziem do ich tworzenia jest operator transpozycji $'$ (apostrof), który zamienia wiersze na kolumny, a kolumny na wiersze.

w = linspace(0,1,101) ⇒  0. 0.01  0.02  0.03 ... 0.98  0.99  1.
v = w' ⇒
0.    
0.01  
0.02  
0.03
...

Utwórz tablicę dwuwymiarową o rozmiarze $100\times 2$, która w pierwszej kolumnie zawiera same zera, a w drugiej same jedynki.

Rozwiązanie
A = [zeros(1,100);ones(1,100)]'
    
Ukryj