Студопедия — Теоретические сведения. 1) Смоделировать с помощью графических возможностей системы Матлаб виртуальный полигон, представляющий собой квадратную матрицу размером mхn
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Теоретические сведения. 1) Смоделировать с помощью графических возможностей системы Матлаб виртуальный полигон, представляющий собой квадратную матрицу размером mхn

1) Смоделировать с помощью графических возможностей системы Матлаб виртуальный полигон, представляющий собой квадратную матрицу размером m х n, в которой помимо свободных клеток присутствуют клетки-преграды, которые разбросаны в случайном порядке и составляют n % от общего числа клеток на полигоне.

2) Случайным образом выбрать расположение начальной А и конечной В точек.

3) В соответствии с выбранным вариантом реализовать алгоритм поиска оптимального пути.

 

Алгоритм Размеры полигона, m х n Плотность преград, %
  Волновой 32x36  
  А-стар 40x38  
  Дейктсры 38x32  

 

4) Отобразить начальные и конечные данные.

5) Оформить отчёт.

6) Подготовить ответы на контрольные вопросы. Закрепить материал.

 

Контрольные вопросы

1) Какие задачи можно решить с помощью волнового алгоритма?

2) Какие задачи можно решить с помощью алгоритма Дейкстры?

3) Чем отличаются алгоритмы Дейкстры и А-стар и в чём они схожи?

4) Чем отличаются методы оперирования данными LIFO и FIFO?

5) В каких случаях выгодно использовать алгоритм поиска в глубину, а в каких случаях в ширину?

6) Какие из приведённых алгоритмов можно использовать в задачах ориентирования в априори неизвестной местности и почему?

Теоретические сведения

Массивы структур. Структура – это совокупность переменных, объединенных под одним именем. С помощью структур удобно размещать в смежных полях связанные между собой элементы информации. Объявление структуры создает шаблон, который можно использовать для создания ее объектов (то есть экземпляров этой структуры). Переменные, из которых состоит структура, называются членами. (Члены структуры еще называются элементами или полями).

Cложные структуры нужны для разработки баз данных, например о работниках предприятия, службах города, городах страны и т. д. Во всех этих случаях особенно важна возможность доступа к отдельным полям структур и возможность присвоения таким полям уникальных имен.

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

Для создания структур в среде MATLAB используется следующая функция:

struct (‘field_1’, ’value_1’, ’field_2, ’value_2’,...) – возвращает созданную данной функцией структуру, содержащую указанные в параметрах поля ‘field_ n ’ с их значениями ‘value_ n ’. Значением могут быть числа, символы, строки и массивы ячеек. Как правило, члены структуры связаны друг с другом по смыслу.

student = struct(‘name’, ‘Oleg’, ‘sname’, ‘Osipovich’, ‘возраст’, 21);

Доступ к отдельным членам структуры осуществляется с помощью оператора. (который обычно называют оператором точка или оператором доступа к члену структуры). Например, в следующем выражении полю name в уже объявленной переменной-структуре student присваивается имя студента ‘Misha’:

student.name = ‘Misha’;

Этот отдельный член определяется именем объекта (в данном случае student), за которым следует точка, а затем именем самого этого члена (в данном случае name).

Два способа наполнения структур:

1) struct(‘поле_1’, { ‘знач_1.1’, ’знач_1.2’,...}, ’поле_2, ’{‘знач_2.1’, ’знач_2.2’,...});

2) str_1 = struct(‘поле_1’, ’значение_1.1’, ’поле_2, ’значение_2.1’,...);

str_2 = struct(‘поле_1’, ’значение_1.2’, ’поле_2, ’значение_2.2’,...);

str = [str_1, str_2];

Для присваивания полям заданных значений используется описанная далее функция:

setfield (str, ’field’, ’value’) – возвращает структуру str с присвоением полю ‘field’ значения value, что эквивалентно str.field=value;

setfield(student(3), ’name’, ’Kolya’, ‘возраст’, 22)

Следующая функция позволяет вывести имена полей заданной структуры:

fieldnames (str) – возвращает имена полей структуры S в виде массива ячеек

» fieldnames(student)

ans =

‘name’

‘surname’

‘date’

Для возврата содержимого поля структуры str служит функция

getfield (str, ‘field’) – возвращает содержимое поля структуры str, что эквивалентно str.field;

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

rmfield (str, ‘field’) – возвращает структуру str с удаленным полем str.’field’;

 

Массив ячеек. Массив ячеек – наиболее сложный тип данных в системе MATLAB. Это массив, элементами которого являются ячейки, содержащие любые типы массивов, включая массивы ячеек. Отличительным атрибутом массивов ячеек является задание содержимого последних в фигурных скобках {}. Создавать массивы ячеек можно с помощью оператора присваивания. Существуют два способа присваивания данных отдельным ячейкам:

1) индексацией ячеек;

2) индексацией содержимого.

Рассмотрим первый способ.

А(1,1)={‘Курить вредно!’};

А(1,2)={[1 2;3 4]};

A(2,1)={2+3i};

А(2,2)={0:0.1:1};

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

А{1,1}=‘Курить вредно!’;

А{1,2}-[1 2:3 4];

А{2,1}=2+3i;

А{2,2}=0:0.1:1;

Для создания массива ячеек может использоваться функция cell:

cell (N) – создает массив ячеек из NxN пустых матриц;

cell (M, N) или cell ([M, N]) – создает массив ячеек из MxN пустых матриц, например,

» C=cell(2.3)

С =

[] [] []

[] [] []

С помощью функции deal возможно множественное присваивание входных данных выходным:

[str.field] = deal (X) – присваивает всем полям field структуры str значения X. Если str не существует, то нужно использовать конструкцию [str(1:M).field]= deal (X);

[X{:}] = deal (str.field) – копирует поля field структуры str в массив ячеек X. Если X не существует, следует использовать конструкцию [X{1:M}]=deal (str.field);

[A,B,C,...] = deal (X{:}) – копирует содержимое массива ячеек X в отдельные переменные А, В, С,...;

Следующий пример иллюстрирует применение функции deal:

» [X{:}] = deal (str.name);

X =

‘Oleg’

‘Misha’

‘Kolya’

Теперь над элементами поля name структуры str можно производить различные операции, включая такие функции, как max, min, sort и т.д.

 




<== предыдущая лекция | следующая лекция ==>
Поиск пути на графе | МЕСТО И ВРЕМЯ ПРОВЕДЕНИЯ

Дата добавления: 2015-10-18; просмотров: 410. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

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

Медицинская документация родильного дома Учетные формы родильного дома № 111/у Индивидуальная карта беременной и родильницы № 113/у Обменная карта родильного дома...

ЛЕКАРСТВЕННЫЕ ФОРМЫ ДЛЯ ИНЪЕКЦИЙ К лекарственным формам для инъекций относятся водные, спиртовые и масляные растворы, суспензии, эмульсии, ново­галеновые препараты, жидкие органопрепараты и жидкие экс­тракты, а также порошки и таблетки для имплантации...

Тема 5. Организационная структура управления гостиницей 1. Виды организационно – управленческих структур. 2. Организационно – управленческая структура современного ТГК...

Методы прогнозирования национальной экономики, их особенности, классификация В настоящее время по оценке специалистов насчитывается свыше 150 различных методов прогнозирования, но на практике, в качестве основных используется около 20 методов...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия