8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 137 138 139 140 141 142 143 ... 365

При этом не происходит автоматического изменения структуры transaction:

>> transaction,strike.exchange

??? Reference to non-existent field exchange".

Для внесения изменений в структуру transaction следует изменить поле

strike:

» transaction.strike = А;

» transaction.strike.exchange

ans =

28.5214

Удаление поля осуществляется с помощью функции rmfieid. Удалите, к примеру, поле time

» transaction = rmfield(transaction, time )

Если в качестве выходного аргумента rmfieid указать другое имя, то старая структура останется без изменений, а новая будет соответствовать старой с удаленным полем.

При обращении к полю структуры его имя можно задавать текстовой строкой в круглых скобках после точки:

» transaction.(volume) ans =

10000

Это дает возможность использовать строковую переменную для идентификации поля:

>> field =volume;

>> transaction.(field)

ans =

10000

Возникает вопрос, как по имени структуры узнать названия ее полей и сохранить их в строковых переменных. Для этой цели служит встроенная функция fieldnames:

» names = fieldnames(transaction) names =

stock

volume

strike

Посмотрите в окне Workspace браузера переменных рабочей среды инфор> мацшо о переменной names. Она представляет собой не массив строк, а от-


носится к типу cell array (массив ячеек). Работу с таким типом данных мы рассмотрим далее в этой главе. Заметим сейчас, что для выделения содержимого ячейки из массива следует указать ее номер в фигурных скобках после имени массива ячеек. Например, обращение

>? f2 = names(2)

f2 -

volume

приводит к записи содержимого второго элемента массива ячеек names в строковую переменную f2, которую можно теперь использовать для доступа к нужному полю структуры transaction

» v = transaction.(f2)

Просмотр и редактирование содержимого полей структуры transaction удобно производить в редакторе массивов (Array Editor), который открывается двойным щелчком кнопкой мыши по имени структуры в окне Workspace. При чтении главы 2 вы уже прибегали к редактору массивов для доступа к элементам числовых массивов. Рассмотрим теперь некоторые его возможности для работы со структурами.

V =

10000

currency USD

bid0.21

ask 0.27

Рис. 8.2. Просмотр вложенной структуры с помощью Array Editor


Редактор массивов позволяет обратиться к значениям полей структуры, в том числе и к полю со вложенной структурой strike, при помощи двойного щелчка мыши по названию поля в столбике Field. Содержимое поля открывается в новом окне редактора массивов, причем окно снабжено вкладкой с именем поля (рис. 8.2). Итак, двойной щелчок мышью приводит к отображению содержимого поля. Обычный щелчок по имени поля в столбике Field делает это поле текущим, а повторный щелчок позволяет изменить название поля. Ввод нового имени поля завершается нажатием <Enter> или щелчком мыши по другому полю. Кнопка Up на панели инструментов редактора массивов служит для перехода вверх по уровням вложенности, т. е. при активном окне с содержимым некоторого поля структуры transaction, например, поля strike, нажатие на Up приведет к отображению структуры transaction.

Массивы структур и массивы ячеек

Обычные массивы удобны при работе с однородными данными — числами или строками. Информация может быть представлена в виде таблицы с полями, содержащими однотипные элементы, в этом случае наилучшим выбором является массив структур. Эффективное оперирование группой данных различных типов позволяет осуществить массивы ячеек, работу с которыми мы рассмотрим чуть позже.

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

Проиллюстрируем использование массивов структур на простом примере. Предположим, что успеваемость группы студентов по шести предметам представлена в табл. 8.1.

Таблица 8.1. Успеваемость студентов группы 201

JSa

Фамилия

Имя

Год рождения

Оценки по предметам

I

II

111

IV

V

VI

1

Алексеев

Иван

1980

5

4

4

5

5

4

2

Васильев

Сергей

1981

3

4

4

3

5

4

3

Кашин

Павел

1979

4

3

4

4

5

4

4

Серова

Наталья

1981

4

3

3

5

4

5

5

Терехова

Ольга

1980

5

5

5

5

4

5



0 ... 137 138 139 140 141 142 143 ... 365