Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Создание массивов ячеек




Fizdan

Vozrast

Fio

Stud

Vozrast: 21

Stud

Гомоморфная фильтрация

Улучшение качества изображения может быть осуществлено путем одновременного сжатия яркостного диапазона и усиления контраста. Изображение f (x,y) может быть представлено в виде произведения освещенности и коэффициента отражения:

 

 

 

 

stud =

fio: 'Петров Г.И.'

fizdan: [176 71 4.2000 110 77]

Для создания структуры размера (2-я таблица) достаточно дополнительно выполнить следующие присвоения

stud(2).fio = ‘ Шварц Е.Ф. ’;

stud(2).vozrast = 20;

stud(2).fizdan = [162 79 3.6 130 90];

В Workspace появится массив записей stud размера .

Опять же, введя в командной строке для проверки имя stud получим

stud =

1x2 struct array with fields:

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

stud(3).fio = ‘ Алиев А.И. ’;

Массив записей (структура) станет размера , но заполненным будет только поле fio. Поля vozrast и fizdan будут содержать пустые массивы.

Отметим, отметим что при увеличении размера структуры:

1) все записи структуры должны иметь одинаковое количество полей;

2) все имена полей должны быть одинаковы.

3) содержимое одинаковых по имени полей для разных записей может быть разным по размеру и типу данных.

Применение функции struct для создания структуры

Функция struct имеет следующий синтаксис.

str_array=struct(‘<имя_поля1>’,’<значение>’,’< имя_поля2>’, ’< значение >’,………..)

Например, создадим структуру, приведенную в 1-ой таблице, т.е. размера , используя функцию struct.

stud=struct(‘fio’,’Петров Г.И.’,’vozrast’, 21,’ fizdan’, [176 71 4.2 110 77] )

Обратите внимание на отсутствие апострофов при вводе значений полей типа double

При использовании функции struct для структур размера большего чем массивы значение должныиметь тип cell, размера равного размеру структуры.

Доступ к полям и данным массива записей (структуры)
Для получения доступа к содержанию любого поля структуры используют индексацию. Например для структуры размера выполнение
a1=stud.fio присвоит переменной а1 строковое значение ’Петров Г.И.;
в1=stud.fizdan
присвоит переменной в1 значение массива физиологических данных, но если выполнить в2= stud.fizdan(2), то переменной в2 будет присвоено значение веса студента Петрова. В случае структуры размера большего чем при чтении содержания поля нужно указывать индекс в имени структуры – из какой записи нужно прочитать содержание поля. Прочитать содержание поля для всех записей структуры приведенным способом нельзя. В этом случае применяют цикл.

Тема 7 Массивы типа cell - массивы ячеек

(1 час, СРС – 1 час)

Массив типа cell – это массив элементами которого могут быть другой массив в том числе и массив типа cell. Это наиболее универсальный тип данных в MATLAB, т.к. на тип элементов массива cell не накладывается ни каких ограничений. Элементы массива cell называют ячейками и поэтому массив типа cell часто называют массивом ячеек. Для работы с массивами ячеек предназначены следующие функции

cell создать массив ячеек

celldisp показать содержимое массива ячеек

cellplot показать графическую структуру массива ячеек

deal обмен данными между массивами

num2cell преобразовать числовой массив в массив ячеек

cell2struct преобразовать массив ячеек в структуру

struct2cell преобразовать структуру в массив ячеек.

iscell истинно, если это массив ячеек

sort сортировка элементов массива

sort rows сортировка элементов массива c сохранением целостности

строк.

Применение этих функций будет рассмотрено на ПЗ

Массивы типа cell можно создать двумя способами.

1. используя операторы присваивания.

2. используя функцию cell.

Применение операторов присваивания.

По этому способу присваивают данные отдельным ячейкам. Здесь возможны два способа присваивания.

Первый – индексация ячеек. По этому способу в левой части оператора присваивания индексы ячейки заключают в круглые скобки, используя стандартные обозначения для массива. Содержание ячейки, находящееся в правой части оператора присваивания, заключают в фигурные скобки {}.
Пример – создать массив ячеек B размера .
B(1,1) = {[1 4 3;0 5 8;7 2 9]};

B(1,2) = {‘kosmos’};
B(2,1) = {2+7i};
B(2,2) = {-pi: pi/10: pi};

После выполнения приведенных присвоений прочтем массив В

B

B =

[3x3 double] 'kosmos'

[2.0000+ 7.0000i] [1x21 double]

При прочтении массив ячеек изображается в сжатой форме.

Второй способ присваивания – индексация содержимого. По этому способу в левой части оператора присваивания индексы ячейки заключают в фигурные скобки. Содержание ячейки, находящееся в правой части оператора присваивания указывается обычным способом.

Тот же пример.

B{1,1} = [1 4 3;0 5 8;7 2 9];

B{1,2} = ‘kosmos’;
B{2,1} = 2+7i;
B{2,2} = -pi: pi/10: pi;

Прочтение массива ячеек В дает тот же результат.

Для прочтения содержимого всех ячеек следует использовать функцию celldisp. Выполнение celldisp(В) выводит содержание каждой ячейки массива по столбцам.

Теперь рассмотрим применение функции cell для создания массива ячеек. Функция cell создает шаблон массива ячеек, заполняя его пустыми ячейками. Например создадим пустой массив ячеек размера .

D=cell(2,3) Выполнив это, получим

D =

[] [] []

[] [] []

Используя оператор присваивания, можно заполнить пустые ячейки, например

D(1,2)= {2:6}; Выполнив D, получим

D =

[] [1x5 double] []

[] [] []




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 606; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.