struct
Array di struttura
Descrizione
Un array di struttura è un tipo di dati che racchiude dati correlati mediante contenitori di dati chiamati campi. Ciascun campo può contenere qualsiasi tipo di dati. Per accedere ai dati di un campo si utilizza la notazione a punti nella forma structName.fieldName.
Creazione
Quando si dispone di dati da inserire in una nuova struttura, questa viene creata utilizzando la notazione a punti per denominare i campi uno alla volta:
s.a = 1;
s.b = {'A','B','C'}s = struct with fields:
a: 1
b: {'A' 'B' 'C'}
I nomi dei campi possono contenere lettere ASCII (A-Z, a-z), cifre (0-9) e trattini bassi e devono iniziare con una lettera. La lunghezza massima del nome di un campo è namelengthmax.
È inoltre possibile creare un array di struttura utilizzando la funzione struct, descritta qui di seguito. È possibile specificare molti campi contemporaneamente o creare un array di struttura non scalare.
Sintassi
Descrizione
s = struct crea una struttura scalare (1x1) senza campi.
s = struct( crea un array di struttura con campo e valore specificati. L’argomento di input field,value)value può essere un qualsiasi tipo di dato, come un array numerico, logico, di caratteri o di celle.
Se
valuenon è un array di celle o sevalueè un array di celle scalare,sè una struttura scalare. Ad esempio,s = struct('a',[1 2 3])crea una struttura 1x1, doves.a = [1 2 3].Se
valueè un array di celle non scalare,sè un array di struttura con le stesse dimensioni divalue. Ciascun elemento discontiene l’elemento corrispondente divalue. Ad esempio,s = struct('x',{'a','b'})restituisces(1).x = 'a'es(2).x = 'b'.Se
valueè un array di celle vuoto{},sè una struttura vuota (0x0).
s = struct(field1,value1,...,fieldN,valueN) crea un array di struttura con più campi.
Se nessun input di
valueè un array di celle o se tutti gli inputi divalueche sono array di celle sono scalari,sè una struttura scalare.Se uno qualsiasi degli input di
valueè un array di celle non scalare,sha le stesse dimensioni dell’array di celle. Inoltre, se due o più input divaluesono array di celle non scalari, questi devono avere tutti le stesse dimensioni.Per qualsiasi
valueche consiste in un array di celle scalare o in un array di altro tipo di dati,structinserisce i contenuti divaluenel campo pertinente per tutti gli elementi dis. Ad esempio,s = struct('x',{'a','b'},'y','c')restituisces(1).x = 'a',s(2).x = 'b',s(1).y = 'c'es(2).y = 'c'.Se qualsiasi input di
valueè un array di celle vuoto,{}, l’outputsè una struttura vuota (0x0). Per specificare un campo vuoto e mantenere i valori degli altri campi, utilizzare invece[]come input divalue.
s = struct([]) crea una struttura vuota (0x0) senza nessun campo.
s = struct( crea una struttura scalare con nomi e valori del campo corrispondenti alle proprietà di obj)obj. La funzione struct non converte obj, ma crea s come una nuova struttura. Questa struttura non conserva le informazioni sulla classe, quindi le proprietà private, protette e nascoste diventano campi pubblici in s. La funzione struct genera un avviso quando si utilizza questa sintassi.
