%Il simbolo di percentuale mi serve per scrivere commenti
x=9

x =

     9

%x=9
%per MATLAB pi è il numero pi greco
pi

ans =

    3.1416

%Per MATLAB un numero diviso zero è infinito
2/0

ans =

   Inf

%per MATLAB 0/0 è una forma indeterminata
0/0

ans =

   NaN

%se voglio sapere come funziona un comando in MATLAB digito help comando
help sin
<strong>sin</strong> - Sine of argument in radians

    This MATLAB function returns the <strong>sin</strong>e of the elements of X.

    Y = <strong>sin</strong>(X)

    <a href="matlab:doc sin">Reference page for sin</a>

    See also <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/matlab/ref/asin.html">asin</a>, <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/matlab/ref/asind.html">asind</a>, <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/matlab/ref/sind.html">sind</a>, <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/matlab/ref/sinh.html">sinh</a>

    Other functions named sin
        <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/fixedpoint/ref/sin.html">fixedpoint/sin</a>, <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/symbolic/sin.html">symbolic/sin</a>

help log
<strong>log</strong> - Natural <strong>log</strong>arithm

    This MATLAB function returns the natural <strong>log</strong>arithm of each element in array X.

    Y = <strong>log</strong>(X)

    <a href="matlab:doc log">Reference page for log</a>

    See also <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/matlab/ref/exp.html">exp</a>, <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/matlab/ref/log10.html">log10</a>, <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/matlab/ref/log1p.html">log1p</a>, <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/matlab/ref/log2.html">log2</a>, <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/matlab/ref/loglog.html">loglog</a>, <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/matlab/ref/logm.html">logm</a>, <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/matlab/ref/reallog.html">reallog</a>, <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/matlab/ref/semilogx.html">semilogx</a>, <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/matlab/ref/semilogy.html">semilogy</a>

    Other functions named log
        <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/comm/ref/log.html">comm/log</a>, <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/finance/log.html">finance/log</a>, <a href="file:///C:/Program%20Files/MATLAB/R2014a/help/symbolic/log.html">symbolic/log</a>

%clc serve per cancellare lo schermo
clc
%clc cancella lo schermo MA non cancella le variabili
%clear all cancella tutte le variabili in memoria
clear all
%i vettori si scrivono tra parentesi quadre
%gli elementi di un vettore riga si separano con lo spazio o con la virgola
a_riga = [1 2 3 4]

a_riga =

     1     2     3     4

%gli elementi di un vettore colonna si separano con il punto e virgola
a_colonna = [1;2;3;4]

a_colonna =

     1
     2
     3
     4

%le matrici in MATLAB si definiscono nel modo seguente
%si parte dalla prima riga e si dividono gli elementi sulle righe con spazio o virgola
%si passa alla riga successiva con il punto e virgola
A = [1 2;3 4]

A =

     1     2
     3     4

%per sapere le dimensioni di una matrice si usa il comando size
size(A)

ans =

     2     2

%se voglio memorizzare le dimensioni di una matrice uso [r,c]=size(A)
[r,c] = size(A)

r =

     2

c =

     2

%con MATLAB si possono definire vettori che siano progressioni aritmetiche
%con un certo passo p nel modo seguente
% v = val_iniz:p:val_fin
v = 1:2:10

v =

     1     3     5     7     9

v = 10:-2:1

v =

    10     8     6     4     2

v = 1:10

v =

  Columns 1 through 9

     1     2     3     4     5     6     7     8     9

  Column 10

    10

v_1 = [1 2];
v_2 = [2 3];
v = [v_1 v_2]

v =

     1     2     2     3

% se voglio concatenare due vettori v_1 e v_2 creo v = [v_1 v_2]
%Svolgimento ES1
v_1 = 1:20;
v_2 = 20:-1:1;
v = [v_1 v_2]

v =

  Columns 1 through 10

     1     2     3     4     5     6     7     8     9    10

  Columns 11 through 20

    11    12    13    14    15    16    17    18    19    20

  Columns 21 through 30

    20    19    18    17    16    15    14    13    12    11

  Columns 31 through 40

    10     9     8     7     6     5     4     3     2     1

%Come selezionare l'elemento di una matrice
A

A =

     1     2
     3     4

A(2,2)

ans =

     4

A(2,2) = 1

A =

     1     2
     3     1

%Come estrarre righe di una matrice
%Estraggo la prima riga di A
A(1,:)

ans =

     1     2

%Estraggo le prima colonna di A
A(:,1)

ans =

     1
     3

B=[1 2 3; 4 5 6];
B(1:2,1:2)

ans =

     1     2
     4     5

B

B =

     1     2     3
     4     5     6

%Il comando diag ha una duplice funzione
%Quando applico diag a una matrice mi restituisce gli elementi sulla diagonale
d=diag(A)

d =

     1
     1

A

A =

     1     2
     3     1

%diag applicato a un vettore mi restituisce una matrice diagonale con gli elementi del vettore sulla diagonale
B = diag(d)

B =

     1     0
     0     1

%estraggo una matrice triangolare superiore con il comando triu
triu(A)

ans =

     1     2
     0     1

%estraggo una matrice triangolare inferiore con il comando tril
tril(A)

ans =

     1     0
     3     1

%il comando eye(n) costruisce la matrice identita di ordine n
eye(3)

ans =

     1     0     0
     0     1     0
     0     0     1

%il comando zeros(m,n) costruisce una matrice mxn di zeri
zeros(2,3)

ans =

     0     0     0
     0     0     0

%il comando ones(m,n) costruisce una matrice mxn di uni
ones(2,3)

ans =

     1     1     1
     1     1     1

%come costruire una matrice fatta di due vettori
v_1 = [1 2];
v_2 = [3 4];
v = [v_1;v_2]

v =

     1     2
     3     4

%Svolgimento ES2
a1=[7:-1:1]

a1 =

     7     6     5     4     3     2     1

a2 = ones(1,7);
a3 = zeros(1,7);
A = [a1;a2;a3]

A =

     7     6     5     4     3     2     1
     1     1     1     1     1     1     1
     0     0     0     0     0     0     0

A(:,5:7)

ans =

     3     2     1
     1     1     1
     0     0     0

A(2:3,3:4)

ans =

     1     1
     0     0

%MATLAB sa eseguire operazioni tra matrici
A = [1 2;3 4];
B = [5 6; 1 1];
%Somma
A+B

ans =

     6     8
     4     5

%Differenza
A-B

ans =

    -4    -4
     2     3

C=[1 2;3 4;5 6]

C =

     1     2
     3     4
     5     6

A+C
{Error using <a href="matlab:helpUtils.errorDocCallback('plus')" style="font-weight:bold"> + </a>
Matrix dimensions must agree.
} 
%MATLAB fa operazioni tra matrici compatibili
%Prodotto matriciale *
C*A

ans =

     7    10
    15    22
    23    34

A*C
{Error using <a href="matlab:helpUtils.errorDocCallback('mtimes')" style="font-weight:bold"> * </a>
Inner matrix dimensions must agree.
} 
%Prodotto puntuale .*
A.*B

ans =

     5    12
     3     4

%Prodotto per scalare
A*5

ans =

     5    10
    15    20

%Trasposto
A'

ans =

     1     3
     2     4

a_rigas
{Undefined function or variable 'a_rigas'.
} 
a_riga

a_riga =

     1     2     3     4

a_riga'

ans =

     1
     2
     3
     4

%Con MATLAB Ë possibile calcolare il determinante di una matrice
A

A =

     1     2
     3     4

det(A)

ans =

    -2

%Il rango di una matrice si determina col comando rank
rank(A)

ans =

     2

%la matrice inversa di A si determina col comando inv
inv(A)

ans =

   -2.0000    1.0000
    1.5000   -0.5000

A*inv(A)

ans =

    1.0000         0
    0.0000    1.0000

inv(A)*A

ans =

    1.0000         0
    0.0000    1.0000

diary off