%% Un petit cours d'octave/matlab

%----------------------------------------
% VECTEURS
%----------------------------------------
% Creation d'un vecteur ligne
x = [5,4,3]
y = rand(1, 3)   % ici y est aleatoire

% Pour le transformer en vecteur colonne : transposer 
tx = x.'

% calculer sa norme :
d = norm(x)

% calculer le produit scalaire x, y
prod_scal = dot(x,y)

% recuperation d'une coordonnee du vecteur
coord2 = x(2)

%----------------------------------------
% MATRICE
%----------------------------------------
% creation d'une matrice :
A = [1,2,3 ; 4,5,6]
tx

% Produit a droite matrice vecteur 
prodD = A * tx

% Produit a gauche matrice vecteur
y=[2,3]
A
prodG = y*A

% produit matrice matrice
A
B = [1,2;3,4;5,6]
produit = A*B

% recuperation d'une ligne d'une matrice
ligne2 = A(2,:)
% recuperation d'une colonne d'une matrice
col3 = A(:,3)

% Calcul de A*A*A*A*A.... POUR LES MATRICES CARREES
A = rand(3, 3)   % ici A est aleatoire
Apuiss5 =  A^5

% determinant de A
A = [1,2,0;4,5,6;7,8,9]
detA = det(A)
B = [1,1,0;1,1,0;0,0,1]
detB = det(B)

%inverse d'une matrice (si le determinant est non nul)
invA = inv(A)
invB = inv(B) %% Ici, probleme !

%% vecteurs propres, valeurs propres
A = [0,3;2,-1]
[vecteursp , valeursp] = eig(A)


P = vecteursp
invP = inv(P)

D = invP *A * P

%% Faire une fonction :

%%% ATTENTION : SOUS MATLAB, DEPLACER LES LIGNES ENTRE LES ----- 
%%% DANS UN FICHIER PORTANT LE NOM DE LA FONCTION.m (ici : calcBidon.m)
%--------------------------------------------
function vectSortie = calcBidon (theta, vectEntree)
	vectSortie = theta * vectEntree;
end
%-------------------------------------------
 x
 x1 =  calcBidon(2.1, x) 
 
 
