1.2. Переменные
В приведенных примерах в выражениях использовались только константы, но MATLAB, как и большинство языков программирования, может работать и с переменными. Имена переменных могут содержать буквы латинского алфавита, цифры и знак подчеркивания, но начинаться имя переменной обязано с буквы. Длина имени переменной не может превышать 63 символов, если попытаться создать переменную с именем длиннее 63 символов, MATLAB обрежет имя переменной до 63 символов. Таким образом, следующие имена переменных являются корректными: varname, varName, VarName, var_name, varname_, variable_1. Следующие имена не могут быть использованы для обозначения переменных: _varname (начинается с символа подчеркивания), 1varname (начинается с цифры), переменная_1 (содержит не латинские символы), var-name (содержит знак «-»).
Имена переменных (так же как ключевых слов и функций) в MATLAB регистрозависимы, то есть переменные varname, varName и VarName являются разными переменными.
Для присваивания переменной значения, используется оператор =, например:
>> a = 30
a =
30
>> b = 45
b =
45
>> c = sind (a) + tand (b)
c =
1.5000
>> z = 'text'
z =
text
В этом примере переменным a, b, c были присвоены числовые значения, а переменной z – строковое. В реальных программах переменным желательно давать более осмысленные имена, описывающие назначение переменной. Строковые константы в MATLAB задаются в одинарных кавычках. В отличие от многих других языков, в MATLAB нет необходимости заранее объявлять переменные, они создаются в момент первого присваивания. Кроме того, язык MATLAB относится к языкам программирования с динамической типизацией, то есть одна и та же переменная в разных частях программы может хранить значение разных типов. Например,
>> x = 10
x =
10
>> x = 'text'
x =
text
>> x = 5 + 10i
x =
5.0000 +10.0000i
В последнем выражении переменной x присваивается комплексное значение. Такая возможность изменять тип переменной по ходу выполнения программы иногда бывает полезна, но ей надо пользоваться с осторожностью и только в крайней необходимости, поскольку такое поведение языка может стать источником ошибок.
Как видно из приведенных выше примеров, MATLAB выводит результат после каждого выражения. Если результат каких-то выражений не нужно показывать, то в конце этого выражения нужно поставить точку с запятой «;». Например:
>> c = sind (a) + tand (b);
>> c
c =
1.5000
В этом примере сразу после вычисления выражения c = sind (a) + tand (b); результат не выводится, а чтобы узнать, какое значение хранит переменная (в данном случае c), было введено имя этой переменной и нажата клавиша Enter. Если значение выражения не присваивается никакой переменной, то оно присваивается переменной с именем ans. При создании переменной, ее имя появляется в окне "Workspace", что показано на рисунке 1.3.
Рис. 1.3. Список переменных в окне "Workspace".
Для того чтобы удалить переменную и освободить занимаемую ей память, используется команда clear. Чтобы удалить одну или несколько переменных, нужно ввести команду clear, за которой через пробел будут перечислены те переменные, которые нужно удалить. Например, для удаления переменных c и z, нужно выполнить команду:
>> clear c z
После этого указанные переменные исчезнут из окна "Workspace". Для удаления всех переменных используется команда clear без параметров:
>> clear
Как было показано выше, MATLAB может работать с комплексными числами. Далее показаны примеры создания комплексных переменных. В качестве мнимой единицы в комплексных числах может использоваться константа i или j, поэтому нужно быть особенно внимательным при создании переменной с именем i или j, которые часто используются в качестве счетчика циклов.
>> clear
>> x = 1 + 5i
x =
1.0000 + 5.0000i
>> y = -2 - 4j
y =
-2.0000 - 4.0000i
>> i
ans =
0 + 1.0000i
>> j
ans =
0 + 1.0000i
>> 2 * i
ans =
0 + 2.0000i
>> i = 10
i =
10
>> 2 * i
ans =
20
>> 2i
ans =
0 + 2.0000i
В таблице 1.2 приведены некоторые наиболее часто используемые функции для работы с комплексными числами:
Таблица 1.2
complex | Создание комплексного числа по его действительной и мнимой части |
abs | Модуль комплексного числа |
angle | Фаза комплексного числа в интервале [-; ] |
conj | Получение комплексно-сопряженного числа |
real | Получение действительной части комплексного числа |
imag | Получение мнимой части комплексного числа |
Функция complex предназначена для создания комплексных чисел по их действительной и мнимой частям и является альтернативой использования переменных i и j.
>> clear
>> re = 5;
>> im = -3;
>> re + im * i
ans =
5.0000 - 3.0000i
>> complex (re, im)
ans =
5.0000 - 3.0000i
Yandex.RTB R-A-252273-3
- Оглавление
- Предисловие
- Раздел 1. Основные сведения о среде программирования «matlab»
- Глава 1. Вычисления в командном режиме
- 1.1. Простейшие математические операции в matlab
- 1.2. Переменные
- 1.3. Создание матриц
- 1.4. Доступ к элементам матриц
- 1.5. Операции с матрицами
- 1.6. Ввод, вывод и работа со строками
- Глава 2. Построение графиков в matlab
- 2.1. Построение графика в виде двумерной линии
- 2.2. Оформление графиков
- 2.3. Построение трехмерных графиков
- 2.4. Построение линий уровня
- 2.5. Построение векторного поля
- 2.6. Отображение нескольких графиков в одном окне
- Глава 3. Скрипты в matlab и управляющие конструкции
- 3.1. Создание и выполнение скриптов в matlab
- 3.2. Оператор for
- 3.3. Логические операции
- 3.4. Оператор if / elseif / else
- 3.5. Оператор while
- 3.6. Операторы break / continue
- 3.7. Оператор switch
- 3.8. Создание функций
- Раздел 2. Краткие теоретические сведения и задания Тема 1. Векторный анализ
- 1.1. Элементы векторного анализа
- Задания
- Тема 2. Уравнения Максвелла (произвольная и гармоническая временная зависимость, статические, стационарные и квазистационарные поля)
- 2.1. Система уравнений электродинамики – уравнения Максвелла
- 2.2. Граничные условия. Принцип эквивалентности
- Задания
- Тема 3. Плоские волны
- 3.1. Явление дисперсии и групповая скорость
- Задания
- Тема 4. Граничные задачи, уравнения и методы
- 4.1. К классификации электромагнитных явлений
- Задания
- 4.2. Метод конечных разностей
- 4.2.1. Конечно-разностная аппроксимация
- 4.2.2. Конечно-разностная аппроксимация уравнений Лапласа и Пуассона
- 4.2.3. Конечно-разностная аппроксимация для граничных узлов
- Задания
- Литература