- •§ 2.2. Командное окно системы matlab
- •§ 2.3. Рабочее пространство системы matlab
- •§ 2.4. Скаляры и массивы. Индексированные переменные
- •§ 2.5. Форматы представления вещественных чисел
- •§ 2.6. Арифметические выражения
- •2.6.1. Некоторая специфика использования вещественных данных
- •2.6.2. Некоторая специфика использования комплексных данных
- •2.6.3. Некоторые приемы работы с матрицами и векторами
- •2.6.4. Некоторые специфика выполнения арифметических и логических операций.
- •§ 2.7. Элементарные математические функции
- •Часть 2. Визуализация результатов вычислений
- •§ 2.8. Особенности графической подсистемы matlab
- •§ 2.9. Построение графиков функций одной переменной
- •2.9.1. Простые графики в декартовой системе координат.
- •2.9.2. Визуализация нескольких графиков.
- •2.9.3. Функция fplot.
- •2.9.4. Построение графиков в логарифмическом и полулогарифмическом масштабах.
- •2.9.5. Построение графиков в полярных координатах.
- •§ 2.10. Оформление графиков и графических окон
- •2.10.1. Выбор свойств линий.
- •2.10.2. Оформление осей координат.
- •2.10.3. Добавление надписей, заголовков и координатной сетки.
- •§ 2.11. Средства управления в графическом окне
- •§ 2.12. Общее знакомство с трехмерной графикой в matlab
- •2.12.1. Общий алгоритм визуализации функций двух переменных.
- •2.12.2. Построение трехмерных линий.
- •2.12.3. Построение поверхностей.
- •2.12.4. Задание дополнительных параметров трехмерных графиков.
- •2.12.5. Построение линий уровня.
- •2.12.6. Построение траектории точки, движущейся в пространстве.
- •2.12.7. Интерактивное редактирование графиков.
- •Часть 3. Вычисления с действительными и комплексными массивами чисел
- •§ 2.13. Операции отношения и логические операции над числами
- •2.13.1. Операции отношения.
- •2.13.2. Логические операции.
- •2.13.3. Приоритет операций.
- •§ 2.14. Формирование одномерных числовых массивов
- •2.14.1. Задание одномерных массивов и доступ к их элементам.
- •2.14.2. Об ускорении операций задания массива.
- •2.14.3. Об использовании операции формирования диапазона.
- •§ 2.15. Матрицы и векторы. Двумерные массивы чисел
- •2.15.1. Создание матриц и векторов.
- •2.15.2. Доступ к отдельным фрагментам матриц.
- •2.15.3. Удаление строк и столбцов матрицы.
- •2.15.4. Использование функций перестановки частей матриц.
- •2.15.5. Определение размеров и размерностей массивов.
- •2.15.6. Использование операций индексации.
- •2.15.7. Изменение размеров массива.
- •2.15.8. Специальные функции формирования массивов.
- •§ 2.16. Вычисления с массивами
- •2.16.1. Поэлементные и групповые операции над массивами.
- •2.16.2. Решение некоторых типовых задач линейной алгебры и аналитической геометрии.
- •2.16.3. Применение операций отношения и логических операций к массивам.
- •2.16.4. Некоторые функции для работы с массивами.
- •Часть 4. Стандартные средства решения некоторых типовых задач линейной алгебры и математического анализа
- •§ 2.17. Решение систем линейных алгебраических уравнений
- •§ 2.18. Решение некоторых задач линейной алгебры. Матричные функции
- •§ 2.19. Разреженные матрицы
- •§ 2.20. Решение нелинейных уравнений
- •§ 2.21. Поиск минимального значения функции
- •§ 2.22. Численное интегрирование
- •2.22.1. Использование метода трапеций.
- •2.22.2. Использование методов Симпсона и Гаусса-Лобатто.
- •2.22.3. Вычисление двойных интегралов.
- •§ 2.23. Операции над полиномами
- •2.23.1. Вычисление значения полинома.
- •2.23.2. Вычисление корней полинома.
- •2.23.3. Умножение и деление полиномов.
- •2.23.4. Дифференцирование и интегрирование полиномов.
- •§ 2.24. Интерполяция и аппроксимация данных
- •2.24.1. Полиномиальная аппроксимация.
- •2.24.2. Интерполяция сплайнами.
- •Часть 5. Символьные вычисления
- •§ 2.25. Создание символьных переменных, выражений и матриц
- •2.25.1. Создание символьных переменных.
- •2.25.2. Создание символьных выражений.
- •2.25.3. Создание символьных матриц.
- •§ 2.26. Символьные вычисления
- •2.26.1. Символьное дифференцирование.
- •2.26.2. Вычисление пределов.
- •2.26.3. Символьное интегрирование.
- •2.26.3. Вычисление суммы ряда. Разложение функций в ряды.
- •2.26.4. Упрощение выражений. Подстановки.
- •2.26.5. Управление точностью вычислений.
- •2.26.6. Операции над векторами. Операции над матрицами. Некоторые операции линейной алгебры.
- •2.26.7. Решение уравнений и систем уравнений.
- •§ 2.27. Визуализация результатов символьных вычислений
- •2.27.1. Построение двумерных графиков.
- •2.27.2. Построение трехмерных графиков.
- •Часть 6. Основы программирования на m-языке
- •§ 2.28. Основные понятия программирования в системе matlab
- •2.28.1. Назначение языка программирования matlab.
- •2.28.2. Основные средства программирования.
- •2.28.3. Основные типы данных.
- •2.28.4. Виды программирования.
- •2.28.5. Двойственность операторов, команд и функций.
- •2.28.6. Некоторые ограничения.
- •§ 2.29. Создание и использование m-файлов
- •2.29.1. Понятие об m-файлах.
- •2.29.2. Типы m-файлов.
- •2.29.3. Создание файл-программ.
- •2.29.4. Создание файл-функций.
- •2.29.5. Глобализация переменных и функций.
- •2.29.6. Синтаксический контроль программ.
- •§ 2.30. Управляющие структуры
- •2.30.1. Понятие об управляющих структурах.
- •2.30.2. Операторы цикла.
- •2.30.3. Операторы ветвления.
- •2.30.4. Прочие операторы.
- •§ 2.31. Работа с файлами
- •2.31.1. Общие замечания.
- •2.31.2. Подготовка файла к работе.
- •2.31.3. Завершение работы с файлами.
- •2.31.4. Контроль за исчерпанием данных.
- •2.31.5. Чтение из текстового файла.
- •2.31.6. Анализ ошибок в файловых операциях.
- •§ 2.32. Форматный ввод-вывод данных
- •2.32.1. Форматные преобразования (sprintf, sscanf).
- •2.32.2. Форматные преобразования при работе с файлами (fprintf, fscanf).
- •§ 2.33. Рекурсивные файл-функции. Производительность файл-функций
- •2.33.1. Понятие о рекурсивных файл-функциях.
- •2.33.2. Оценка производительности файл-функции.
- •§ 2.34. Файл-функции с переменным числом входных параметров и выходных значений
- •§ 2.35. Диалоговые программы
- •2.35.1. Ввод числовых и символьных данных.
- •2.35.2. Вывод результатов вычислений.
- •§ 2.36. Анимационные эффекты
- •§ 2.37. Контроль входных и выходных параметров файл-функции
- •§ 2.38. Отладка программы
- •2.38.1. Понятие о способах отладки программы.
- •2.38.2. Рекомендации по созданию и отладке программ.
- •Часть 7. Создание программ с визуальным интерфейсом
- •§ 2.39. Понятие о графическом интерфейсе пользователя (gui)
- •2.39.1. Предварительные замечания.
- •2.39.2. Основные команды для создания gui.
- •§ 2.40. Общие сведения о визуальной среде guide
- •§ 2.41. Программирование событий в matlab
- •§ 2.42. Свойства основных компонентов в matlab
- •§ 2.43. Диалоговые окна в matlab
- •§ 2.44. Динамическое создание компонентов
- •§ 2.45. Создание меню
- •§ 2.46. Некоторые рекомендации по созданию приложений с графическим интерфейсом пользователя
2.9.5. Построение графиков в полярных координатах.
Для построения графика функции в полярной системе координат используется команда polar, например (рис. 2.9.7):
>> phi=0:0.001:2*pi;
>> r=sin(5*phi);
>> polar(phi,r);
§ 2.10. Оформление графиков и графических окон
Функции построения графиков, рассмотренные в предыдущем параграфе осуществляли автоматическое оформление графиков. Разумеется у системы MATLAB имеются дополнительные возможности, связанные с управлением внешним видом графика – заданием цвета и стиля линий, а также размещение различных надписей в пределах графического окна.
Рис.
2.9.7. График функции
в полярной системе координат.
Рис. 2.10.1. Пример маркировки точек кривой посредством окружностей.
2.10.1. Выбор свойств линий.
Так, например, команды (рис. 2.10.1)
>> x=0:0.1:2*pi;
>> y=cos(x);
>> plot(x, y, 'k-', x, y, 'ko')
позволяют придать графику вид черной сплошной линии, на которой в дискретных точках, расстояние между которыми равно 0.1, проставляются черные окружности. Здесь функция plot дважды строит график одной и той же функции, но в двух разных стилях. Первый из этих стилей отмечен как “k-”, что обозначает проведение линии черным цветом (буква k), а штрих означает проведение сплошной линии. Второй стиль, помеченный как “ko”, обозначает проведение тем же черным цветом (буква k) окружностей (буква o) на месте вычисляемых точек.
В общем случае команда
plot(x1,y1,s1,x2,y2,s2,...)
позволяет определить в одном графическом окне изображения нескольких функций y1(x1),y2(x2),... используя стили s1,s2,....
Заметим, что стили s1,s2,... задаются в виде набора трех символьных маркеров (стилевой строки), один из которых задает тип линии, второй – цвет линии, а третий – тип маркера, используемого для пометки представляемых точек (таблица 2.10.1). При отсутствии указания типов маркеров используются значения, установленные по умолчанию. Отметим, что порядок, в которым указываются маркеры, задающие тип линии, цвет линии и тип точки несущественен. Если в стилевой строке задан тип маркера, но не указан тип линии, то представляемые точки маркером метятся, но не соединяются друг с другом отрезками прямых.
Более мощным способом построения графиков функций является метод дескрипторов, который относится к низкоуровневой графике MATLAB. Метод дискрипторов позволяет напрямую обратиться к базовым графическим объектам и задать его свойства. Детальное знакомство со свойствами графических объектов MATLAB выходит за рамки книги.
В этой связи приведем ниже некоторый пример, иллюстрирующий основные приемы работы с дискрипторной графикой и позволяющий продемонстрировать суть данного метода (рис. 2.10.2).
>> x=0:0.001:2*pi;
>> y=cos(x);
>> hplot=plot(x,y);
>> set(hplot,'LineWidth',8);
В данном случае команда plot через опорные точки проводит отрезки прямых линий с координатами x,y. Прямые линии в системе MATLAB представляют собой объекты типа line. Эти объекты имеют очень большое количество свойств и характеристик, которые можно менять. Доступ к этим объектам осуществляется посредством их дескрипторов.
Командой hplot=plot(x,y) создается графический объект и переменной hplot присваивается значение дескриптора графического объекта типа line, использованного для построения графика функции .
Таблица 2.10.1. Параметры для управления цветом и видом графиков.
Параметр |
Обозначение (управляющий символ) |
Тип линии |
|
сплошная (по умолчанию) |
- |
пунктирная |
: |
штриховая |
-- |
штрих-пунктирная |
-. |
Цвет линии |
|
красный (от англ. red) |
r |
желтый (от англ. yellow) |
y |
зеленый (от англ. green) |
g |
синий (от англ. blue) |
b |
голубой /циановый/ (от англ. cyan) |
c |
розовый /малиновый/ (от англ. magenta) |
m |
черный (от англ. black) |
k |
белый (от англ. white) |
w |
Тип маркера |
|
точка (жирная точка) |
. |
кружок |
о |
крестик (косоугольный крестик) |
x |
плюс (прямоугольный крестик) |
+ |
звездочка (восьмиконечная снежинка) |
* |
квадратик |
s |
ромбик |
d |
отсутствие маркера |
none |
треугольник вершиной вниз |
v |
треугольник вершиной вверх |
^ |
треугольник вершиной влево |
< |
треугольник вершиной вправо |
> |
пятиконечная звезда |
p |
шестиконечная звезда |
h |
Затем данный дескриптор передается в качестве параметра функции set для опознания конкретного графического объекта и задания значений соответствующих свойств объекта.
В рассматриваемом примере было установлено значение свойства 'LineWidth' (толщина линии) равным 7 (по умолчанию 0.5). График, полученный в результате изменения толщины линии, представлен на рис. 2.10.2.
Текущее значение любого параметра (атрибута; характеристики) графического объекта возвращается функцией get. Так, например, если после получения показанного на рис. 2.10.1 графика выполнить команду
>> width=get(hplot, 'LineWidth')
width =
7
Рис. 2.10.2. График функции на интервале (толщина кривой – 7 пикселей).
то для переменной width будет присвоено значение свойства 'LineWidth' равное 7.
Для получения списка всех свойств графического объекта следует обратиться к функции get, указав ей в качестве единственного параметра дескриптор объекта. Так, например, для дескриптора hplot объекта типа line можно найти весь список его свойств:
>> get(hplot);
DisplayName: ''
Annotation: [1x1 hg.Annotation]
Color: [0 0 1]
LineStyle: '-'
LineWidth: 7
Marker: 'none'
MarkerSize: 6
MarkerEdgeColor: 'auto'
MarkerFaceColor: 'none'
XData: [1x6284 double]
YData: [1x6284 double]
ZData: [1x0 double]
BeingDeleted: 'off'
ButtonDownFcn: []
Children: [0x1 double]
Clipping: 'on'
CreateFcn: []
DeleteFcn: []
BusyAction: 'queue'
HandleVisibility: 'on'
HitTest: 'on'
Interruptible: 'on'
Selected: 'off'
SelectionHighlight: 'on'
Tag: ''
Type: 'line'
UIContextMenu: []
UserData: []
Visible: 'on'
Parent: 173.0011
XDataMode: 'manual'
XDataSource: ''
YDataSource: ''
ZDataSource: ''
Среди свойств графического объекта с дескриптором hplot имеются интуитивно понятные. В частности, помимо уже рассмотренного свойства 'LineWidth', свойство 'Color' отвечает за цвет линии в RGB-кодировке (красный, зеленый, синий) и так как значение поля равно [0 0 1], то цвет линии синий, а свойство 'MarkerSize' определяет размер маркера точек графика (в данном случае равного 6). Установленные значения полей указываются в списке свойств справа от знака равно, при этом свойства, значения которых не установлены, отмечены пустым полем или знаком [].
