clear all;
clc;

%% Programmazione Matlab: Tipi di dato e strutture dati
% Il tipo di dato fondamentale e' un array N-dimensionale
a = [1 2 3]
b = [1 2 3 4; 5 6 7 8]

% accesso agli elementi
a(2)
b(1,3)
b(:,3)

% le sequenze sono indicate usando l'operatore ":"
1:4
1:2:10
1:.1:.4

% si possono indicare sottoinsiemi di elementi
b(:, 2:3)
b(1, 2:end)

% una matrice viene intepretata come la giustapposizione 
% delle sue colonne
b(:)

% Si possono specificare array con un numero di dimensioni maggiori di 2
c(:,:,1) = [1 2 3; 4 5 6]
c(:,:,2) = [7 8 9; 0 1 2]

%% Contenitori eterogenei
% cell: generalizzazione degli array; ogni elemento non e' vincolato
%       ad un dato numerico e elementi diversi possono contenere tipi
%       di dati differenti
d{1} = a
d{2} = b
d{2,3} = c
% structure: raccoglitore di elementi eterogenei indicizzati per nome
s.data = a
s.name = 'example'