구조체 배열은 구조체의 각 기록란이 낱칸 배열인 특수한 구조체입니다. 개별 낱칸 원소는 크기가 같습니다. 개념 상으로, 구조체 배열은 동일한 기록란을 가진 구조체의 배열로도 볼 수 있습니다. 아래는 구조체 배열 생성 예시로
x(1).a = "string1"; x(2).a = "string2"; x(1).b = 1; x(2).b = 2;
기록란 두 개를 가진 1×2짜리 구조체 배열을 만듭니다. 구조체 배열을 만드는 다른 방법은 struct
함수를
사용하는 것입니다.(구조체 만들기
참조) 다른 구조체처럼, 구조체 배열을 값을 출력하려면 구조체 이름을 타자하면 됩니다.
x ⇒ x = { 1x2 struct array containing the fields: a b }
구조체 배열의 개별 원소는, 이 예시에서는 기록란이 두 개인 구조체를 반환하는 가로(1)
식으로
탐색하여 얻습니다.
x(1) ⇒ ans = { a = string1 b = 1 }
더욱이 구조체 배열을 기록란 이름으로 탐색하여 기록란 값을 반점으로 구분한 목록(반점 구분 목록 참조)으로 반환받을 수도 있습니다.
x.a ⇒ ans = string1 ans = string2
반점 구분 목록을 좌항에 넣은 다른 예시입니다.
[x.a] = deal ("new string1", "new string2"); x(1).a ⇒ ans = new string1 x(2).a ⇒ ans = new string2
수치 배열은 벡터로 탐색하여도 됩니다.(색인 표현식 참조)
x(3:4) = x(1:2); [x([1,3]).a] = deal ("other string1", "other string2"); x.a ⇒ ans = other string1 ans = new string2 ans = other string2 ans = new string2
함수 size
는 구조체 크기를 반환합니다. 아래 예시는 위 예시 구조체의 크기입니다.
size (x) ⇒ ans = 1 4
수치 배열과 비슷한 방식으로 원소에 빈 행렬을 할당하여 구조체 배열에서 원소를 제거합니다.
예시:
in = struct ("call1", {x, Inf, "last"}, "call2", {x, Inf, "first"}) ⇒ in = { 1x3 struct array containing the fields: call1 call2 } in(1) = []; in.call1 ⇒ ans = Inf ans = last