- •§ 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.10.2. Оформление осей координат.
Рассмотрим теперь примеры оформления
осей координат, а именно задание надписей
(подписей) осей, размера и типа шрифта
и т.д. По умолчанию система MATLAB
устанавливает пределы на горизонтальной
оси, равные минимальному (
)
и максимальному (
)
значениям независимой переменной. Для
зависимой переменной по вертикальной
оси MATLAB автоматически
вычисляет диапазон изменения значений
функции
.
В результате график функции оказывается
вписанным в прямоугольник, нижний левый
и верхний правый углы которого имеют
соответственно координаты
и
.
Таким образом, система автоматически
выбирает такой масштаб, чтобы в поле
графика поместились все вычисленные
значения.
При необходимости отказаться от указанной особенности автоматического масштабирования графиков в MATLAB, пользователь может самостоятельно явным образом указать выбранные пределы изменения переменных и . Для выполнения этой процедуры используется функция
axis([xmin, xmax, ymin, ymax])
Справочно приведем ниже также некоторые иные способы использования команды axis:
axis(square) – задание одинаковых диапазонов изменения переменных по обеим осям координат;
axis(equal) – задание одинакового масштаба по обеим осям координат;
axis(auto) – возвращение к масштабу, установленному по умолчанию;
zoom(on) – включение режима интерактивного изменения масштаба для текущего графика, при котором масштаб можно изменять с использованием мыши;
zoom(off) – выключение режима интерактивного изменения масштаба.
Заметим, что функции axis и zoom, разумеется, могут принимать и другие аргументы (более полную информацию по данному вопросу можно получить, выбрав команды help axis или help zoom).
Заметим, что команду axis можно вводить с клавиатуры уже после построения графика функции, что позволяет предварительно провести визуальный анализ поведения рассматриваемой функции.
Так, например, для того, чтобы более
подробно исследовать характер изменения
функции
на интервале
можно воспользоваться командой (рис.
2.10.3):
>> set(hplot,'LineWidth',0.5);
>> axis([pi/4,3*pi/4,-1,1])
Рис. 2.10.3. Фрагмент графика функции .
Для изменения отметок на осях координат используется команда (функция) set, позволяющая установить свойства объекта axes. Данный объект содержит оси координат и белый прямоугольник, внутри которого строится график функции. Для получения описателя объекта axes применяют функцию gca, которая вызывается без параметров:
>> haxes=gca;
>> set(haxes,'xtick',[0.0 1.0 2.0 3.0 4.0 5.0 6.0]);
2.10.3. Добавление надписей, заголовков и координатной сетки.
Для размещения разного рода надписей на полученном рисунке применяют функции xlabel (предназначена для размещения названия горизонтальной оси, ориентированного вдоль оси координат), ylabel (предназначена для размещения названия вертикальной оси, ориентированного вдоль оси координат), title (предназначена для задания общего заголовка графика), text (предназначена для размещения надписи в произвольном месте рисунка) и legend (размещение легенды). В качестве примера приведем обращение вида
>> text(x,y,'Sample Text')
где x, y – координаты нижнего левого угла прямоугольника, в котором размещается отображаемый текст (по умолчанию координаты задаются в тех же единицах измерения, что и координаты, указанные на горизонтальной и вертикальной осях).
Следует также отметить команду
grid on
используя которую можно нанести координатную (измерительную) сетку на всю область построения графика.
Легенда позволяет вносить ясность при визуализации нескольких графиков. Рассмотрим, в частности, следующий пример (рис. 2.10.4):
>> x=0:0.001:2*pi;
>> y1=cos(x);
>> y2=sin(x);
>> plot(x,y1,'-',x,y2,'-.')
>> legend('cos(x)','sin(x)',3)
>> xlabel('Coordinate x');
>> ylabel('Coordinate y');
>> grid on
>> title('Functions cos(x), sin(x)')
Заметим, что третий параметр в команде legend (впрочем, данный параметр можно указать в любом месте списка) управляет размещением легенды в графическом окне:
– при значении параметра равном -1 легенда размещается вне поля графика вверху справа;
– при значении параметра равном 0 система выбирает наилучшее место в поле графика, не перекрываемое данными;
– при значении параметра равном 2 легенда размещается в левом верхнем углу поля графика;
Рис. 2.10.4. Графики функций с подписями, легендой и сеткой.
Рис. 2.10.5. Пример графиков с двойной оцифровкой осей.
– при значении параметра равном 3 легенда размещается в левом нижнем углу поля графика;
– при значении параметра равном 4 легенда размещается в правом верхнем углу поля графика.
В некоторых случаях визуализация двух графиков в общем окне (совмещение) может вызвать проблемы, обусловленные тем, что диапазоны изменения аргументов или значений функций не совпадают. Для разрешения этих проблем в системе MATLAB можно использовать функцию plotyy, которая производит двойную оцифровку осей. Для первой из отображаемых в окне функций цифруются ось внизу, а ось слева, для второй функции – ось размещается вверху, а ось справа, причем цвет оцифровки совпадает с цветом кривых. Итак, можем записать (рис. 2.10.5):
>> x=0:0.001:2*pi;
>> y1=cos(x);
>> y2=5*sin(x);
>> plotyy(x,y1,x,y2)
Приведем еще один важный пример. Выполнив команды
>> x=0:0.001:2*pi;
>> y=cos(x);
>> plot(x,y);
>> title('Graph of Sample Function cos(x)');
>> xlabel('Coordinate x');
>> ylabel('Coordinate y');
>> text(4.0,-0.6,'\leftarrowcos(x)');
>> grid on
получим график функции , представленный на рис. 2.10.6.
Заметим, что в представленном примере были использована специальные управляющие символы, введенные внутри текста после символа \ («обратная косая черта») «стрелка влево». Справочно можно отметить, что команды отображения специальных символов MATLAB совпадают с соответствующими командами системы подготовки научных текстов TeX. Так, например, для создания новой строки и вывода в нее текста применяется команда \newline.
Для того, чтобы установить шрифт, который будет использоваться для соответствующих надписей следует запомнить
>> htext=text(4.0,-0.6,'\leftarrowcos(x)');
Располагая дескриптором htext объекта типа text, можно изменять свойства его атрибутов. В частности, посредством команды
set(htext,'Color',[1 0 0],'FontSize',[18]);
изменит внешний вид ранее выведенной надписи – шрифт увеличится в размере, а сам цвет надписи станет красным.
Рис. 2.10.6. Пример оформления графиков.
Завершая рассмотрение способов оформления графиков функций, укажем, как изменить цвет фона, на котором осуществляется построение графиков (по умолчанию установлен белый цвет). Для того, чтобы сделать цвет фона слегка красноватым, следует присвоить свойству Color объекту axes значение [0.8 0.5 0.5], при этом прежде всего необходимо получить описатель этого объекта:
>> haxes=gca;
Функция gca предназначена для поиска описателя текущего объекта axes. Отметим, что при наличии нескольких объектов типа axes в первую очередь следует щелкнуть мышью на том из них, который должен стать текущим, и лишь после этого вводить указанную выше команду.
Смена фона прямоугольника, содержащего графическое изображение соответствующей функциональной зависимости, осуществляется следующей командой:
>> set(haxes,'Color',[0.8 0.5 0.5]);
Для смены фона всего графического окна необходимо выполнять следующие команды:
>> FigureColor=[0.8 0.5 0.5];
>> hfigure=gcf;
>> set(hfigure,'Color',FigureColor);
