구조체 결합
이 예제에서는 []
연산자를 사용하여 구조체형 배열을 결합하는 방법을 보여줍니다. 구조체를 결합하려면 구조체에 동일한 필드 세트가 있어야 하지만, 필드에 포함되는 데이터의 크기나 데이터형이 동일할 필요는 없습니다.
각각 필드 a
와 b
를 포함하는 스칼라(1×1) 구조체형 배열 struct1
및 struct2
를 생성합니다.
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]
두 개의 스칼라 값을 결합하면(예: [1,2]
) 1×2 숫자형 배열이 생성되는 것과 마찬가지로, struct1
과 struct2
를 결합하면 1×2 구조체형 배열이 생성됩니다.
combined = [struct1,struct2]
combined=1×2 struct array with fields:
a
b
특정 필드의 내용에 액세스하려는 경우 배열의 구조체에 대한 인덱스를 지정합니다. 예를 들어, 첫 번째 구조체의 필드 a
에 액세스해 보겠습니다.
combined(1).a
ans = 'first'
결합은 비 스칼라 구조체형 배열에도 적용됩니다. 예를 들어, new
라는 2×2 구조체형 배열을 생성해 보겠습니다. 1×2 구조체 combined
와 2×2 구조체 new
모두 두 개의 열을 가지기 때문에, 세미콜론 구분 기호를 사용하여 이 두 구조체를 세로로 결합할 수 있습니다.
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
구조체 larger(2,1)
의 필드 a
에 액세스합니다. 여기에 포함된 값은 new(1,1).a
와 동일합니다.
larger(2,1).a
ans = 1