Не в состоянии понять декларацию структуры Octave - PullRequest
0 голосов
/ 02 октября 2019

В Octave появилась новая функция - Структура. Я получил информацию о Структуре от Октавной Структуры .

Я также получил некоторый код для создания такой структуры

data = struct;
data.timestep.sensor = struct;

Но я никогда не получал такого типа объявленийв Октавная структура . Поэтому я запутался в этих двух строках кода.

Может кто-нибудь помочь мне разобраться в этих двух строках?

1 Ответ

0 голосов
/ 02 октября 2019

Прежде всего, структуры не так уж новы в Octave (связанная страница документации уже доступна для Octave 4.0.0 с дата последнего изменения март 2016 ).

Есть ли у васпросто поигрался немного создавая структуры? Первая строка просто сгенерирует некоторую пустую структуру.

data = struct
        data =
          scalar structure containing the fields:

Как видите, полей пока нет.

Вторая строка (неявно)

  1. добавляет поле timestep к структуре data,
  2. добавляет поле sensor к timestep, (неявно) делая timestep (под) структуру,
  3. делает поле sensor самой пустой структурой.

Если в вашем рабочем пространстве ранее не было переменной data (или уже правильной структуры), второй строки достаточно. Затем data также неявно генерируется как структура.

clear data;
data.timestep.sensor = struct
        data =
          scalar structure containing the fields:
            timestep =
              scalar structure containing the fields:
                sensor =
                  scalar structure containing the fields:

Если уже есть переменная data, например, с некоторым скаляром, она не будет работать, и вам понадобятся обе строки.

data = 42;
data.timestep.sensor = struct
error: scalar cannot be indexed with .

data = struct
        data =
          scalar structure containing the fields:

data.timestep.sensor = struct
        data =
          scalar structure containing the fields:
            timestep =
              scalar structure containing the fields:
                sensor =
                  scalar structure containing the fields:

Вместо data = struct вы могли бы также использовать, например, clear data.

Надеюсь, это поможет! Если нет, то, возможно, предоставьте более подробную информацию в своем вопросе, что именно вас смущает.

...