% scaletta per la lezione dell'8 novembre 2007
% uno script si esegue tutto in un colpo con F5
% o nel menu Debug -> Run
% mettere dei 'blocchi' cliccando la lineetta accanto al numero
% compare bollino rosso (ricliccando sopra, si cancella)
% Oppure, si esegue 'passp-passo' con F6 o F10 a seconda delle
% versioni di Matlab (vedi menu debug)
%

% prima di avviare lo script e' buona norma ripulire 
% il workspace 
clear

% uso dei file del libro

% i file usati sono scaricabili dalla rete:
% http://www.mcgraw-hill.it/naldi

% scompattare i file con un programma apposito:
% per esempio: ark in un sistema linux
%              winzip in un sistema windows

% Cartella filem/cap1

%
% aggiungere al path anche la cartella precedente, o copiare i file 
% nella directory corrente

% guardiamo lo script stella.m
edit stella

% proviamo a prendere informazioni sul file
help stella

% eseguiamo digitiamo nella finestra di comando:
% >> stella

% ripetiamo con n differente
% modificando il file stella.m

% ESEMPIO DI FUNCTION DI MATLAB:
%
% guardiamo la funzione puntistella.m
% come sopra per path o copiare file

edit puntistella

% notiamo che stavolta vi sono argomenti in ingresso e in uscita
% NB la sintassi della prma riga

% esercizio: utilizzando la funzione puntistella, creiamo 
% 4 grafici corrispondenti alle stelle a 5,6,7,8 punti 
% in un'unica finestra

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% soluzione

clear

figure
% parametro di profondit� delle punte
a = 0.5
for n = 5:8
    subplot(2,2,n-4)
    [x,y] = puntistella(a,n);
    plot(x,y)
    % usiamo la stessa unita' di misura sugli assi
    axis square
end


% uso delle funzioni

% Calcolo di Medie

help mediav
% nota: correggere il file mediav.m fornito dal sito del libro
% la parola function all'inizio del file e' incompleta
edit mediav


% vettore e matrice su cui calcolare le medie
v = [ 1 3 5 2 8 9]
A = [ 1 2 3
      4 5 6
      7 8 9 ]
  
% uso del file mediav
m1 = mediav(v);

% ulteriore esempio
x = linspace(1,20, 20);

mx = mediav(x)


help mediam

edit mediam
m2 = mediam(A);

% si noto che mediam funziona anche su vettori.
% Proviamo ....
mx2 = mediam(x)

% e scopriamo che mx e mx2 coincidono
mx - mx2

% Esercizio
% provare a studiare il codice alternativo
help mediam2
edit mediam2
m2bis = mediam(A)

% ESERCIZIO:
% calcolare le medesime quantita' usando la funzione SUM


%   COME ESEGUIRE OPERAZIONI RIPETITIVE IN MODO COMPATTO:
%   I CICLI (2)
%
%   uso del ciclo di while (ciclo aperto)

% SINTASSI:
%
%  WHILE ESPRESSIONE
%
%           ISTRUZIONI
%
% END
%

% esempio di utilizzo del costrutto WHILE....END

a1 = 9;
as = 1e4;

% operatori relazionali

a1 < as               % minore di

a1 <= 9               % minore di o uguale a

a1 > as               % maggiore

a1 >= as              % maggiore di o uguale a

a1 == as              % uguale a

a1 ~= as              % diverso da



% operatori logici (booleani)

a2 = 4;

a1 < as & a1 ~= as 

a1 < as | a1 ~= as

~(a1 < as & a1 ~= as)

xor(a1 ~= as, a2 > as)


