%% mátrixok, alapműveletek

% létrehozás, összefűzés
A = [1 3 5;2 4 6];

B = [10 11 12;
     54 63 15];
 
C = [A B];
D = [A;B];
E = [A';[pi -pi]];

% indexelés
M = magic(5); % elemek 1-től n^2-ig, sorösszeg = oszlopösszeg

M(3,4); % konkrét elem indexe
M(15); % lineáris index (oszlopfolytonos)

M([2 3 4],[4 5]); % több elem
M(2:4,4:5); % ugyanez rövidebben
M(2:4,:)

M([2 5 4],[5 2 1]); % tetszőleges elemsorrend
M(1:20); % lineáris indexelés
reshape(M(1:20),5,[]); % elég csak az egyik dimenziót megadni, oszlopfolytonosan hozza létre

Mind = M>10; % logikai mátrix
find(Mind); % lineáris index
M(find(Mind)); % lineáris indexelés
M(Mind); % logikai indexelés

% méretek
length(M);
numel(M);
size(M);

% többdimenziós mátrixok
R = rand(3,3,3)

R(:,:,1) % az utolsó dimenzió szerint vett részmátrixok
R(:,:,2)
R(:,:,3)

R(:,1,:) % ha nem az utolsó szerint indexelek, az elemeket megkapom, de egy felesleges dimenzió benne marad
squeeze(R(:,1,:))

% beépített fv.-ek
T = reshape(linspace(0,2*pi,100),10,[]); % oszlopfolytonos

S = sin(T);
C = cos(T);
E = exp(T);

round(T)

S(S<0);

M = magic(3)

sum(M) % alapesetben oszlopok szerint
sum(M,2)

prod(M)
prod(M,2)

mean(M)
mean(M,2)

min(M)
min(M,[],2) % dimenzió megadásához kell az üres []

diag(M)
trace(M)

M*M
M/M
M\M

M.^2











