- •§ 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.3. Рабочее пространство системы matlab
Значения переменных, вычисленных в течение текущего сеанса работы, сохраняются в специально зарезервированной области оперативной памяти компьютера, называемой рабочим пространством системы MATLAB (MATLAB Workspace).
Для того, чтобы узнать текущее значение любой переменной, размещенной в рабочем пространстве MATLAB достаточно набрать в командной строке имя переменной и нажать клавишу «Enter». Однако еще более удобным является использование окна Workspace, в котором отображаются все переменные, использованные в данном сеансе работы с системой MATLAB. Двойной щелчок левой кнопкой мыши по строке, содержащей имя переменной в этой строке приводит к появлению окна Variables, в котором можно просматривать и менять значения выбранной переменной.
Эффективность работы пакета будет снижаться по мере увеличения объема рабочего пространства. В этой связи при отсутствии дальнейшей необходимости хранения в текущем сеансе работы некоторых переменных, рекомендуется удалить их командой, имеющей следующий синтаксис:
>> clear name1, name2 ...
где name1 и name2 – имена удаляемых переменных.
Для одновременного удаления всех переменных, размещенных в данный момент в рабочем пространстве следует ввести команду
>> clear
Удаленная (стертая в рабочем пространстве) переменная становится неопределенной. Использовать неопределенные переменные нельзя, соответствующие попытки будут сопровождаться сообщениями об ошибке. Неопределенные переменные могут использоваться лишь при выполнении символьных вычислений.
Для отображения имен переменных, размещенных в данный момент в рабочем пространстве следует выполнить команду
>> who
По любой команде MATLAB можно оперативно получить справочную информацию, выполнив команду
>> help имя команды
или стандартным образом обратиться к разделу помощи системы.
Если для решения конкретной задачи встроенных функций MATLAB оказывается недостаточно, пользователь имеет возможность создавать собственные функции, используя для этого внутренний язык MATLAB или языки программирования высокого уровня FORTRAN, C, C++, Java и др.
После завершения сеанса работы с системой MATLAB все ранее вычисленные переменные теряются (если не выполнить специально соответствующую операцию сохранения). Для файлов, в которых MATLAB сохраняет значения переменных из рабочего пространства должно использоваться расширение mat, поэтому такие файлы принято называть «MAT-файлами».
Заметим, что режим работы с MATLAB, в котором пользователь вводит команды в командной строке, задавая математические выражения или обращаясь к функциям MATLAB, называется интерактивный режим или режим командной строки.
§ 2.4. Скаляры и массивы. Индексированные переменные
Исторически, своим названием система MATLAB обязана сокращению от англоязычного словосочетания Matrix Laboratory, что дословно переводится на русский язык как «матричная лаборатория». Таким образом, неслучайно, что основным видом данных, которые используются в системе, являются матрицы. По сути, даже простейшие скалярные переменные MATLAB рассматривает как матрицы размером 1х1 (состоящие из одной строки и одного столбца). Для скалярных переменных, впрочем, такое понимание отнюдь не «жесткое» – так, для единственного элемента массива размерности 1х1 указывать индексы этого элемента не обязательно:
>> a=5
a =
5
Вместе с тем, можно обратиться к единственному элементу массива одним или даже двумя индексами, задавая их в круглых скобках:
>> a(1)
ans =
5
>> a(1,1)
ans =
5
Поясняя приведенные обращения, следует отметить, что вместо обычных (традиционных) индексов, принятых в математике и алгоритмических языках, в компиляторах используются так называемые приведенные индексы, позволяющие определить позицию соответствующего элемента массива в оперативной памяти компьютера. Оперативная память использует линейную индексацию своих ячеек. Таким образом, для одномерного массива приведенный индекс совпадает с обычным. Для двумерного массива A размерности mxn (m – число строк; n – число столбцов) приведенный индекс k элемента A(i,j) зависит от способа распределения элементов в памяти. В системе MATLAB, также как и в языке программирования FORTRAN используется отсчет индексов в массивах от 1 (в отличие, например, от языка программирования C), а сами элементы матрицы располагаются в памяти по столбцам. Итак, каждому элементу A(i,j) в памяти предшествуют (j-1) столбец по m элементов в каждом, т.е. элемент A(i,j) расположен на месте с номером k=(j-1)*m+i. MATLAB, наряду с традиционными индексами в многомерных массивах позволяет также пользоваться и единственным приведенным индексов, что несколько повышает скорость вычислений.
Попытка обратиться к несуществующему элементу массива приведет к выдаче соответствующего сообщения об ошибке:
>> a(2)
Index exceeds matrix dimensions.
