Несмотря на загадочное название, курс посвящен "продвинутому" MATLABу. "Продвинутость" заключается в том, что материал курса не входил в свое время в курс "Компьютерная математика".
Продолжительность курса: 5 лекций и 5 практик. В связи с этим предлагаю сосредоточиться на следующих темах.
Предварительная программа курса
1. Оптимизация программ Как повысить скорость выполнения программы, сэкономить памяти и можно ли этого хотеть одновременно. Векторизация кода, ее плюсы и минусы. Оценка скорости работы алгоритма. Выбор быстрых алгоритмов (Оптимальность — с точек зрения вычислительной и «человеческой»). Использование профайлера.
2. Графика, видео Графические объекты в MATLAB. Изменение свойств объектов (set и get). Динамическое построение 2D-графика (полезно, если объем массивов координат очень большой). Точечные графики (plot3D). Динамическое построение трехмерных объектов. Работа с прозрачностью. Основы работы с видео (запись результатов в ролик).
3. Взаимодействие с MS Office Помещение ролика в презентацию (типичная проблема: PowerPoint не проигрывает ролик и как ее решить). Экспорт/импорт в Excel. MATLAB Builder EX — интеграция MATLAB-приложений в книги Excel в виде макросов и надстроек.
4. GUI и немного программирования «Продвинутые» функции в MATLAB: создание функций с переменным числом аргументов, обработка ошибок (catch) — короче, более изысканное программирование. Подфункции. inline-функции. Структуры. Конструкция switch. load Простейшая программа с GUI: вывод/очистка графика. Выравнивание элементов UI, обработка разных событий. Работа с мышкой. MATLAB Compiler. Вызов сторонних программ из MATLAB
5. Matlab и ГИС Работа с шейп-файлами, взаимодействие с WMS-серверами и другие возможности Mapping Toolbox.
Запросы на включение того или иного материала в программу приветствуются. Заранее прошу прощения, что не все они могут быть реализованы в силу ограниченности времени курса.
Литература
- Ануфриев И.Е., Смирнов А.Б., Смирнова Е.Н. MATLAB 7. СПб.: БХВ-Петербург, 2005. 1104 с. — отличный справочник по MATLAB и, в частности, по созданию GUI.
Сетевые ресурсы
- http://www.mathworks.com/matlabcentral/ — MATLAB® Central: блоги разработчиков, ответы на вопросы пользователей, огромная коллекция готовых скриптов. Пожалуй, главное MATLAB-место в Сети.
- http://matlab.exponenta.ru/ — Консультационный центр MATLAB компании Sofline. Крупнейший русскоязычный ресурс, посвященный MATLABу. Здесь можно найти описание Toolbox’ов, форум, а также переведенные на русский фрагменты справки MATLAB.
- http://www.advancedmcode.org/ — Статьи и скрипты для продвинутых пользователей MATLAB.
- http://undocumentedmatlab.com/ — Блог Яира Альтмана (Yair Altman), посвященный недокументированным возможностям MATLAB.
- Библиотека книг по пакету MATLAB & Simulink.
Задания
Номер варианта (N) соответствует номеру студента в списке своей группы (M). Если M > N, необходимо выбрать вариант с номером M-N (т.е., если вариантов пять, а ваш номер - 7, то нужно выбрать вариант 2 и т.п.)
Программа должны быть понятна не только для вас, но для ваших сокурсников. Это можно реализовать комментариями в тексте программы и/или отдельным сопроводительным файлом. Если будет непонятно, что происходит в программе — оценка будет снижена.
Компактность кода приветствуется: компактнее код, выше оценка.
Все файлы, относящиеся к заданию, помещаются в папку с именем «фамилия-номер задания» и сдаются мне на занятиях. Задания можно направлять также по адресу dkhramov(собака)mail.ru в виде архивов с именем «фамилия-номер задания».
- Задание 1. Векторизация кода (09.02.2011) -- срок сдачи: 17.02.2011
- Задание 2. Сохранение результатов работы в видеофайл (16.02.2011) -- срок сдачи: 03.03.2011
- Задание 3. Разработка GUI (28.02.2011) -- срок сдачи: 23.03.2011
Конспекты
Внимание! Предлагаемые конспекты -- это мои рабочие материалы. Они могут существенно отличаться от информации, которую вы услышите на лекции, поэтому не могут заменить собой ведение обычных конспектов, но могут использоваться как их дополнение. К тому же они могут содержать ошибки, о чем, я надеюсь, вы мне сообщите.
- Лекция 1. Оптимизация кода (03.02.2011)
- Лекция 2. Графические объекты. Простейший GUI (16.02.2011)
- Лекция 3. Работа с изображениями. Видео. Взаимодействие с MS Office (17.02.2011)
- Лекция 4. Раздельное выполнение скрипта. Интерактивная графика. GUI: флаги и переключатели (23.02.2011)
- Лекция 5. Массивы ячеек. Функции с переменным количеством аргументов. Создание независимых приложений с помощью MATLAB Compiler (03.03.2011)
- Лекция 6. Как работает приложение, созданное в GUIDE. Модальные окна. Меню. Немного об обработке событий (09.03.2011)
- Лекция 7. Возможности Mapping Toolbox. Вызов сторонних программ из MATLAB (17.03.2011)
- Лекция 8. Создание GUI без использования GUIDE. Работа с мышью (23.03.2011)
Комментарии
comments powered by Disqus