Main Content

Concatenar estructuras

Este ejemplo muestra cómo concatenar arreglos de estructuras usando el operador []. Para concatenar estructuras, deben tener el mismo conjunto de campos, pero no es necesario que los campos tengan el mismo tamaño ni el mismo tipo de datos.

Cree los arreglos de estructuras escalares (1 por 1) struct1 y struct2 con los campos a y b en cada uno:

struct1.a = 'first';
struct1.b = [1,2,3];
struct2.a = 'second';
struct2.b = rand(5);
struct1,struct2
struct1 = struct with fields:
    a: 'first'
    b: [1 2 3]

struct2 = struct with fields:
    a: 'second'
    b: [5x5 double]

Igual que concatenar dos valores de escalar como [1,2] crea un arreglo numérico de 1 por 2, concatenar struct1 y struct2 crea un arreglo de estructuras de 1 por 2.

combined = [struct1,struct2]
combined=1×2 struct array with fields:
    a
    b

Cuando quiera acceder al contenido de un campo particular, especifique el índice de la estructura en el arreglo. Por ejemplo, acceda al campo a de la primera estructura.

combined(1).a
ans = 
'first'

La concatenación también se aplica a arreglos de estructuras no escalares. Por ejemplo, cree un arreglo de estructuras de 2 por 2 llamado new. Como la estructura de 1 por 2 combined y la estructura de 2 por 2 new tienen cada una dos columnas, puede concatenarlas de forma vertical con un punto y coma como separador.

new(1,1).a = 1;
new(1,1).b = 10;
new(1,2).a = 2;
new(1,2).b = 20;
new(2,1).a = 3;
new(2,1).b = 30;
new(2,2).a = 4;
new(2,2).b = 40;

larger = [combined; new]
larger=3×2 struct array with fields:
    a
    b

Acceda al campo a de la estructura larger(2,1). Contiene el mismo valor que new(1,1).a.

larger(2,1).a
ans = 1

Temas relacionados