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
value
non è 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 dis
contiene 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 divalue
che sono array di celle sono scalari,s
è una struttura scalare.Se uno qualsiasi degli input di
value
è un array di celle non scalare,s
ha le stesse dimensioni dell’array di celle. Inoltre, se due o più input divalue
sono array di celle non scalari, questi devono avere tutti le stesse dimensioni.Per qualsiasi
value
che consiste in un array di celle scalare o in un array di altro tipo di dati,struct
inserisce i contenuti divalue
nel 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.
Argomenti di input
Esempi
Funzionalità estese
Cronologia versioni
Introduzione prima di R2006aVedi anche
isfield
| table
| isstruct
| fieldnames
| orderfields
| rmfield
| substruct
| cell2struct
| struct2cell
| struct2table
| table2struct
| namelengthmax