Slovník | Vyhledávání | Mapa webu
 
Základy informatiky pro biologyVýpočetní matematické systémy Jak pracovat s MATLABem Jednoduché výpočty, proměnné a matice Funkce pro tvorbu matic

Logo Matematická biologie

Funkce pro tvorbu matic

Pro vytvoření matic větších rozměrů (obecně rozměrů x řádků, sloupců) je možné použít některých funkcí MATLABu:

zeros(m, n) nulová matice (na všech pozicích jsou nulové hodnoty),
ones(m, n) jedničková matice (na všech pozicích jsou hodnoty rovny jedné),
eye(m, n) jednotková matice (na hlavní diagonále jsou jedničky, jinde nuly),
rand(m, n) matice s náhodnými prvky mezi 0 a 1,
randn(m, n) matice s prvky mající standardizované normální rozdělení.

Všechny výše uvedené funkce je možné zadávat pouze s jedním parametrem - v takovém případě je vytvořena čtvercová matice příslušného řádu. 

>> Z = zeros(2,5)    nulová matice o 2 řádcích a 5 sloupcích 

>> O = ones(3,4)   jedničková matice o 3 řádcích a 4 sloupcích

>> I = eye(5,8)   jednotková matice o 5 řádcích a 8 sloupcích

>> o = ones(0,5)   prázdná matice

o = 
     Empty matrix: 0-by-5

>> O1 = ones(3)   čtvercová jedničková matice

>> R1 = rand(3,5)   náhodná matice o 3 řádcích a 5 sloupcích

>> R2 = randn(4)   čtvercová náhodná matice s prvky z normálního rozložení

Jelikož jsou vektory považovány za matice s jedním řádkem nebo jedním sloupcem, pomocí výše uvedených funkcí a nastavením jednoho z argumentů na hodnotu 1 můžeme vytvářet i vektory. Vektor, jehož prvky tvoří aritmetickou posloupnost (tzv. „ekvidistantní“ vektor), je možné vytvořit pomocí operátoru : (dvojtečka). Příkaz a : b vygeneruje aritmetickou posloupnost prvků od a do b s krokem 1. Pro jiný krok mezi jednotlivými prvky lze použít příkaz a : d : b, kde d je délka kroku, je možno použít i záporný krok.

>> x = 1:10    vytvoření posloupnosti s krokem 1
x =
    1    2    3    4    5    6    7    8    9    10
>> y = 0:2:12
    vytvoření posloupnosti sudých čísel
y = 
     0    2    4    6    8    10    12
>> z = 0.5 : 0.1 : 1.1
z = 
   0.5    0.6    0.7    0.8    0.9    1    1.1
>> x1 = 15:-2:7
    vytvoření posloupnosti se záporným krokem
x1 =
      15    13    11    9    7
>> x2 = 2:3:15
x2 =
      2    5    8    11    14  

Příkazy a : b, popř. a : d : b, lze nahradit příkazy colon(a, b), popř. colon(a, d, b).

>> x3 = colon(2,3,15)    analogie k 2:3:15
x3 =
      2    5    8    11    14

Další alternativou pro generování ekvidistantních vektorů jsou příkazy linspace() a logspace():

x = linspace(a, b, n)    generuje aritmetickou posloupnost prvků x od a do b. Třetí parametr n je volitelný, udává počet prvků posloupnosti x, jeho implicitní nastavení na n=100 lze libovolně měnit.

x = logspace(a, b, n)    generuje vektor x s desítkovou logaritmickou škálou prvků od 10^a do 10^b. Třetí parametr délky posloupnosti n je volitelný, jeho implicitní nastavení je n=50. Příkaz je ekvivalentní příkazu 10.^linspace(a, b, n).

>> x = linspace(-1, 4, 8)
x =
     -1.0000   -0.2857    0.4286    1.1429    1.8571    2.5714    3.2857    4.0000
>> x = logspace(0, 1, 5)
   ekvivalentní příkazu 10.^linspace(0, 1, 5)
x =
     1.0000    1.7783    3.1623    5.6234   10.0000
>> x = 10.^linspace(0, 1, 5)
x =
    1.0000    1.7783    3.1623    5.6234   10.0000   

 

 
vytvořil Institut biostatistiky a analýz Lékařské fakulty Masarykovy univerzity