Spec-Zone.ru › Octave 9

6.1.2 Массивы структур

Массив структур — это особый экземпляр структуры, в котором каждое поле структуры представлено массивом ячеек. Все эти массивы ячеек имеют одинаковые размеры. Концептуально массив структур также можно рассматривать как массив структур с одинаковыми полями. Пример создания массива структур:

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
        }

Отдельные элементы массива структур можно получить, индексировав переменную, например, как x(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

© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Structure-Arrays.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API