
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 = >> 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 |
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 |