Системные переменные и константы
Как отмечалось
ранее, в состав объектов MATLAB входит ряд системных переменных и констант,
значения которых устанавливаются системой при ее загрузке или автоматически
формируются в процессе вычислений. Описание таких объектов приводится ниже.
-
ans —
результат выполнения последней операции. Переменная ans создается автоматически,
когда не определены выходные аргументы какого-либо оператора. Пример:
»
cos([0:2*pi])
ans =
1.0000
0.5403 -0.4161 -0.9900 -0.6536 0.2837 0.9602
-
computer
— возвращает строку с информацией о типе компьютера, на котором установлена
система MATLAB;
-
[str.maxsize]
= computer — возвращает строку str с информацией о компьютере и целое число
maxsize, содержащее максимально допустимое число элементов матрицы для данной
версии MATLAB. Пример:
»
[str.maxsize] = computer
str =
PCWIN
maxsize =
268435455
-
eps —
возвращает интервал между числом 1.0 и следующим ближайшим числом с плавающей
запятой, которое воспринимается как отличное от 1.0. Значение eps определяет
заданный по умолчанию порог для функций pinv и rank, а также для некоторых
других функций. На машинах с арифметикой с плавающей запятой eps = 2
^
(-52),
что приблизительно составляет 2.22е-1б. Пример:
»
eps
ans =
2.2204е-016
-
i
или j— мнимая единица (равная sqrt(-1)), которая используется для задания
мнимой части комплексных чисел. Символ 1 при задании комплексной константы
можно использовать без знака умножения. В качестве мнимой единицы можно
также использовать символ j. Пример:
»
w=3+5i
w =
3.0000
+ 5.00001
-
Inf — возвращает
представление положительной бесконечности для машинной арифметики. Бесконечность
следует из операций, подобных делению на нуль, и переполнения, которое ведет
к результатам, слишком большим, чтобы их можно было представить в виде числа
с плавающей запятой. Пример:
»
4/0
Warning:
Divide by zero.
ans=
Inf
Примечание
Переменным i и j можно
задать и иное значение, например, они могут выступать в ка-честве индексов
в циклах for. Однако это чревато путаницей, если внутри цикла пользователь
задает выражения с комплексными числами.[Используйте как индексы I и J вместо
1 и j.— Примеч. ред.]
-
inputname(argnum)
— возвращает в тело функции название переменной рабочей области, соответствующее
аргументу с номером argnum. Может использоваться только внутри тела функции.
Если входной аргумент не имеет никакого символьного представления (например,
если это выражение или функция, дающая на выходе выражение, например а(1),
varargin{:}, eval(expr), а не переменная), функция inputname возвращает
пустую строку ("");
-
j — мнимая
единица. Символ j можно использовать в качестве мнимой единицы наряду с
1. Как мнимая единица (равная sqrt(-D) символ j используется для задания
мнимой части комплексных чисел. Все сказанное о символе i относится и к
j. Пример:
»
s=4-3j
s
=
4.0000
- 3.00001
-
NaN —
возвращает представление для нечисловых величин, например, в случае операций,
которые имеют неопределенные численные результаты. Пример:
»
s=0/0
Warning:
Divide by zero.
s =NaN
Функция nargchk
часто используется внутри m-файлов для проверки соответствия количества входных
параметров (аргументов):
-
msg =
nargchkOow.high.number) — возвращает сообщение об ошибке, если число number
меньше, чем low, или больше, чем high, в противном случае возвращается пустая
строка. Пример:
»
msg = nargchk(4,9.5)
msg =
[
]
»
msg = nargchk(4.9.2)
msg = Not enough input arguments.
-
msg =
nargoutchkdow,high.number) — возвращает сообщение об ошибке, если число
number выходных параметров (выходных аргументов в терминологии MATLAB) меньше,
чем low, или больше, чем high, в противном случае возвращается пустая строка.
Еще две функции
позволяют определить число входных и выходных параметров
функции:
-
nargin
— возвращает число входных аргументов, определенных для функции. Внутри
тела m-файла функции nargin и nargout указывают соответственно количество
входных или выходных аргументов, заданных пользователем. Вне тела m-файла
функции nargin и nargout показывают соответственно число входных или выходных
аргументов для данной функции. Отрицательное число аргументов означает,
что функция имеет переменное число аргументов;
-
nargin(@fun)
— возвращает число объявленных входных параметров для функции fun. Если
функция имеет переменное число входных аргументов, возвращается -1;
-
nargout
— возвращает число выходных параметров, определенных для функции;
-
nargout(
'fun') — возвращает число объявленных выходных параметров для функции fun.
Применение
этих функций мы рассмотрим немного позже при описании структуры функций.
Продолжаем
перечисление системных переменных:
-
pi
— число р (отношение длины окружности к ее диаметру), pi возвращает число
с плавающей запятой, ближайшее к значению р. Выражения 4*atan(l) и imag(log(-1))
выдают тот же результат. Пример:
»
pi
ans
= 3.1416
-
real
max — возвращает самое большое число в формате с плавающей запятой, соответствующее
конкретному компьютеру. Большее значение соответствует системной переменной
Inf. Пример:
»
n = real max
n
=
1.7977е+308
-
real mi
n — возвращает наименьшее нормализованное положительное число в формате
с плавающей запятой, представимое на конкретном компьютере. Любое меньшее
число воспринимается как ноль. Пример:
»
n = realmin
n =
2.2251е-308
Переменные
varargin и varargout позволяют использовать в функциях переменное число входных
и выходных параметров:
-
varargout
= foo(n) — возвращает список выходных параметров переменной длины функции
foo;
-
у = function
bar(varargin) — принимает переменное число аргументов в функцию bar.
Переменные
varargin и varargout используются только внутри m-файлов функции для задания
произвольных аргументов функции. Эти переменные должны быть последними в списке
входов или выходов, а для их обозначения могут использоваться только строчные
буквы. Использование этих возможностей мы рассмотрим несколько позже.
Содержание раздела