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

UptoLike

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

174
Применение функции struct. Чтобы сформировать вложен-
ную структуру, необходимо организовать рекурсию при вызове функ-
ции struct.
Пример. Допустим, что требуется создать структуру размера
1х2. Организуем следующий рекурсивный вызов функции struct:
A = struct('data',[3 4 7; 8 0 1],'nest',...
struct('testnum','Test 1','xdata',[4 2 8],'ydata',[7 1 6]))
A =
data: [2x3 double]
nest: [1x1 struct]
Запись A(1) содержит требуемые значения, благодаря вызову
внешней функции struct.
Следующая последовательность операторов производит ре-
зультат, аналогичный предыдущему
:
A(1).data = [3 4 7; 8 0 1];
A(1).nest.testnum = 'Test 1';
A(1).nest.xdata = [4 2 8];
A(1).nest.ydata = [7 1 6];
A(2).data = [9 3 2; 7 6 5];
A(2).nest.testnum = 'Test 2';
A(2).nest.xdata = [3 4 2];
A(2).nest.ydata = [5 0 9]
A =
1x2 struct array with fields:
data
nest
Введем изменения в запись A(2):
A(2).data = [9 3 2; 7 6 5];
A(2).nest.testnum = 'Test 2';
A(2).nest.xdata = [3 4 2];
A(2).nest.ydata = [5 0 9]
A =
1x2 struct array with fields:
data
nest
Тогда получим структуру, приведённую на рисунке 6.9. Как
и в случае массивов записей с одним уровнем вложения, можно с ис-
пользованием операторов присваивания сформировать вложенные
массивы структур.
        Применение функции struct. Чтобы сформировать вложен-
ную структуру, необходимо организовать рекурсию при вызове функ-
ции struct.

         Пример. Допустим, что требуется создать структуру размера
1х2. Организуем следующий рекурсивный вызов функции struct:
     A = struct('data',[3 4 7; 8 0 1],'nest',...
       struct('testnum','Test 1','xdata',[4 2 8],'ydata',[7 1 6]))
     A=
       data: [2x3 double]
       nest: [1x1 struct]
         Запись A(1) содержит требуемые значения, благодаря вызову
внешней функции struct.
         Следующая последовательность операторов производит ре-
зультат, аналогичный предыдущему:
     A(1).data = [3 4 7; 8 0 1];
     A(1).nest.testnum = 'Test 1';
     A(1).nest.xdata = [4 2 8];
     A(1).nest.ydata = [7 1 6];
     A(2).data = [9 3 2; 7 6 5];
     A(2).nest.testnum = 'Test 2';
     A(2).nest.xdata = [3 4 2];
     A(2).nest.ydata = [5 0 9]
     A=
        1x2 struct array with fields:
          data
          nest
Введем изменения в запись A(2):
     A(2).data = [9 3 2; 7 6 5];
     A(2).nest.testnum = 'Test 2';
     A(2).nest.xdata = [3 4 2];
     A(2).nest.ydata = [5 0 9]
     A=
         1x2 struct array with fields:
           data
           nest

        Тогда получим структуру, приведённую на рисунке 6.9. Как
и в случае массивов записей с одним уровнем вложения, можно с ис-
пользованием операторов присваивания сформировать вложенные
массивы структур.


174