Моделирование в системе MATLAB. Часть 1. Основы работы в MATLAB. Терёхин В.В. - 166 стр.

UptoLike

Составители: 

164
Пример. Записать для пациента 3 показатель (2, 2) медицин-
ского теста
patient(3).test(2, 2) = 167;
Получить значение некоторого поля для всех записей струк-
туры нельзя; это можно сделать только для отдельной записи.
Пример. Для вывода всех значений поля name необходимо
организовать цикл:
for i = 1 : length(patient)
disp(patient(i).name)
end
John Doe
Ann Lane
Alan Johnson
Чтобы получить доступ к записи, необходимо индексировать
имя структуры.
Пример.
Результатом выполнения нижеследующего операто-
ра является структура размера 1х1, которая соответствует второй за-
писи структуры patient:
B = patient(2).
B =
name: 'Ann Lane'
billing: 28.5000
test: [3x3 double]
Функции setfield и getfield. Непосредственная индексация -
это, как правило, наиболее эффективный способ определить или при-
своить значение полю записи. Однако, если использовалась функция
fieldnames и известно имя поля, то можно воспользоваться
функция-
ми setfield и getfield.
Функция getfield позволяет определить значение поля или
элемента поля:
f = getfield(array, {array_index}, 'field', {field_index})
где аргументы array_index и field_index задают индексы для структу-
ры и поля; они не являются обязательными для структуры размера
1х1. Результат применения функции getfield соответствует элементу
следующей структуры
f = array(array_index).field(field_index);
Пример. Чтобы получить доступ к полю
name второй записи
структуры patient, необходимо использовать функцию getfield в сле-
дующей форме
str = getfield(patient, {2}, 'name')
str = Ann Lane
        Пример. Записать для пациента 3 показатель (2, 2) медицин-
ского теста
         patient(3).test(2, 2) = 167;
        Получить значение некоторого поля для всех записей струк-
туры нельзя; это можно сделать только для отдельной записи.
        Пример. Для вывода всех значений поля name необходимо
организовать цикл:
         for i = 1 : length(patient)
            disp(patient(i).name)
          end
          John Doe
          Ann Lane
          Alan Johnson
        Чтобы получить доступ к записи, необходимо индексировать
имя структуры.
        Пример. Результатом выполнения нижеследующего операто-
ра является структура размера 1х1, которая соответствует второй за-
писи структуры patient:
         B = patient(2).
          B=
             name: 'Ann Lane'
           billing: 28.5000
             test: [3x3 double]

          Функции setfield и getfield. Непосредственная индексация -
это, как правило, наиболее эффективный способ определить или при-
своить значение полю записи. Однако, если использовалась функция
fieldnames и известно имя поля, то можно воспользоваться функция-
ми setfield и getfield.
          Функция getfield позволяет определить значение поля или
элемента поля:
      f = getfield(array, {array_index}, 'field', {field_index})
где аргументы array_index и field_index задают индексы для структу-
ры и поля; они не являются обязательными для структуры размера
1х1. Результат применения функции getfield соответствует элементу
следующей структуры
       f = array(array_index).field(field_index);
          Пример. Чтобы получить доступ к полю name второй записи
структуры patient, необходимо использовать функцию getfield в сле-
дующей форме
       str = getfield(patient, {2}, 'name')
       str = Ann Lane

164