8. Funkcie pre prácu s údajmi
8.1. Základné funkcie pre prácu s údajmi
MATLAB umožňuje aj štatistické spracovanie údajov. Jednotlivé prvky sú
zadávané ako matica (vektor). V prípade matice sa operácie robia po stĺpcoch.
Funkcia |
Opis |
cumprod |
kumulatívne násobenie prvkov |
cumsum |
kumulatívny súčet prvkov |
max |
najväčší prvok |
mean |
priemer alebo stredná hodnota |
median |
stredná hodnota polohy |
min |
najmenší prvok |
prod |
násobenie prvkov |
sort |
triedenie, zoraďovanie prvkov |
std |
štandardná odchýlka |
sum |
súčet prvkov |
trapz |
numerická integrácia |
8.1.1. Kumulatívny súčet prvkov a kumulatívne násobenie prvkov
Príklad 8.1: Kumulatívny súčet prvkov vektora
>> data3 = [3 2 5];
>> cumsum(data3)
ans =
3 5 10
Príklad 8.2: Kumulatívny súčet prvkov matice
>> data4 = [4 3 2;3 7 4;-2 1 5]
data4 =
4 3 2
3 7 4
-2 1 5
>> cumsum(data4)
ans =
4 3 2
7 10 6
5 11 11
Príklad 8.3: Kumulatívne násobenie prvkov vektora
>> cumprod(data3)
ans =
3 6 30
Príklad 8.4: Kumulatívne násobenie prvkov matice
>> cumprod(data4)
ans =
4 3 2
12 21 8
-24 21 40
8.1.2. Súčet a násobenie prvkov
Príklad 8.5: Súčet prvkov vektora
>> data1 = [2 4 7];
>> sum(data1)
ans =
13
Príklad 8.6: Súčet prvkov matice
>> data2 = [4 5 2;1 3 7;4 -2 1];
>> sum(data2) % Sucet stlpcov
ans =
9 6 10
>> sum(data2,1) % Sucet stlpcov
ans =
9 6 10
>> sum(data2,2) % Sucet riadkov
ans =
11
11
3
>> sum(sum(data2)) % Sucet vsetkych prvkov
ans =
25
Príklad 8.7: Súčin prvkov vektora
>> prod(data1)
ans =
56
Príklad 8.8: Súčin prvkov matice
>> prod(data2) % Sucin stlpcov
ans =
16 -30 14
>> prod(data2,1) % Sucin stlpcov
ans =
16 -30 14
>> prod(data2,2) % Sucin riadkov
ans =
40
21
-8
>> prod(prod(data2)) % Sucin vsetkych prvkov
ans =
-6720
8.1.3. Minimálny a maximálny prvok z údajov
Príklad 8.9: Maximálny prvok vektora
>> max([4 2 15])
ans =
15
Príklad 8.10: Minimálne prvky stĺpcov
>> min([15 5 3;1 6 7;4 8 2])
ans =
1 5 2
>> min(min([15 5 3;1 6 7;4 8 2]))
ans =
1
8.1.4. Stredná hodnota, priemer údajov
Príklad 8.11: Priemer prvkov vektora
>> mean([1 4 2 2 1])
ans =
2
Príklad 8.12: Priemer prvkov matice
>> mean([1 3 2;5 2 1;2 2 1;4 2 2])
ans =
3.0000 2.2500 1.5000
8.1.5. Zoradenie prvkov vektora a matice
Príklad 8.13: Zoradenie prvkov vektora
>> sort([4 8 5 1])
ans =
1 4 5 8
Príklad 8.14: Zoradenie prvkov matice
>> sort([5 8 4;2 1 3;9 7 1])
ans =
2 1 1
5 7 3
9 8 4
8.1.6. Numerický integrál
Funkciou trapz vieme vypočítať číselnú hodnotu integrálu krivky, ktorá je zadaná
bodmi pomocou vektorov X, Y. Funkcia používa na výpočet integrálu
lichobežníkovú náhradu.
Príklad 8.15: Numerický integrál
>> X = [1 2 3.5 5 7];
>> Y = [3 2 6 7 4];
>> trapz(X,Y)
ans =
29.2500
Príklad 8.16: Numerický integrál, ak X je v tvare X = [0 1 2 3 ...]
>> trapz(Y)
ans =
18.5000
8.2. Konečné diferencie, skalárny a vektorový súčin vektorov
Funkcia |
Opis |
diff |
diferencia |
gradient |
aproximovaný gradient |
8.2.1. Výpočet diferencie
Funkcia diff vypočítava diferenciu, t.j. rozdiel medzi dvoma alebo viacerými
bodmi podľa toho aký stupeň diferencie sa zvolí:
- diff(X), kde X je vektor, potom výsledná diferencia je v tvare
[X(2)-X(1) X(3)-X(2) ... X(n)-X(n-1)]
- diff(X), kde X je matica, potom výsledná diferencia je realizovaná
po stĺpcoch
[X(2:n,:)-X(1:n-1,:)]
- diff(X,n), zápis n-tej diferencie. Napríklad pre 2. stupeň je v tvare
[X(3)-2X(2)+X(1) ... X(n)-2X(n-1)+X(n-2)]
Príklad 8.17: Diferencia 1. stupňa - vektor
>> x = [4 7 3.5 -1 5 3 6];
>> diff(x)
ans =
3.0000 -3.5000 -4.5000 6.0000 -2.0000 3.0000
Príklad 8.18: Diferencia 2. stupňa - vektor
>> diff(x,2)
ans =
-6.5000 -1.0000 10.5000 -8.0000 5.0000
Príklad 8.19: Diferencia 1. stupňa - matica
>> A=[1 2 3;1 4 5;7 8 9]
>> diff(A)
ans =
0 2 2
6 4 4
Príklad 8.20: Diferencia 2. stupňa - matica
>> diff(A,2)
ans =
6 2 2
Príklad 8.21: Výpočet derivácie funkcie sin(x2) použitím diferencie
>> h = .01; % h je perióda vzorkovania
>> x = 0:h:pi; % dy = y(i+1)-y(i); dt = h
>> diff(sin(x.^2))/h; % derivácia funkcie použitím diferencie dy/dt
ans =
0.0100 0.0300 0.0500 0.0700 0.0900 0.1100 ...
Príklad 8.22: Skutočná derivácia
>> 2*cos(x.^2).*x
ans =
0 0.0200 0.0400 0.0600 0.0800 0.1000 ...
8.2.2. Výpočet gradientu
Funkcia
gradient slúži na číselný výpočet gradientu funkcie. Funkcia môže byť
dvojparametrová
f(X,Y) alebo jednoparametrová
f(X).
Pre dvojparametrovú funkciu platí zápis:
[PX,PY] = gradient(Z,dx,dy)
Funkcia vracia číselné partikulárne derivácie z matice
Z do matíc
PX = dZ/dx a
PY = dZ/dy, kde
dx a
dy sú periódy
vzorkovania pre
X a
Y.
Pri zápise
[PX,PY] = gradient(Z) je
dx = dy = 1.
Príklad 8.23: Jednoparametrová funkcia
>> x = [0:0.4:2.5];
>> y = exp(-x.^2);
>> gradient(y,0.4)
ans =
-0.3696 -0.5909 -0.7690 -0.5625 -0.2733 -0.0927 -0.0379
8.3. Úlohy
- Vyvorte vektor a = [1 3 -2 2.4 8.4 -5.3] a maticu A =
[1 2 3 4;-4 7 -2 3;7 4 2 -5]
- Použite základné funkcie pre prácu s údajmi (maticou A a vektorom a):
- súčet a kumulatívny súčet prvkov
- násobenie a kumulatívne násobenie prvkov
- minimálny a maximálny prvok
- triedenie prvkov
- priemernú hodnotu prvkov
- Vypočítajte plochu pod krivkou určenou bodmi: X = [1 2.5 4 6 8]; Y = [3 5 2 7 4];
- Nájdite inflexný bod na krivke y=f(x), ktorej body získate príkazom:
[y,t,x] = step([1],[1 2 1],[0:0.01:10])
Príkazom plot(x,y) si môžete krivku vykresliť.