GNU Octave/Типы числовых данных
Константа может быть скалярной величиной, вектором или матрицей, и может содержать комплексные переменные.
Простейший вид константы — скалярная величина — число, которое может быть целым, десятичной дробью, числом в научной (экспоненциальной) записи или комплексным числом.
Вот несколько примеров некоторых констант:
105
1.05e+2
1050e-1
Чтобы описать комплексную константу, используются выражения вида:
3 + 4i
3.0 + 4.0i
0.3e1 + 40e-1i
Приведённые выше выражения для комплексных чисел эквивалентны. Буква «i» используется для обозначения мнимой части комплексного числа и определяется как sqrt(-1).
Для того, чтобы Octave смогла отличить комплексную запись числа от всех остальных, между числом и буквой «i» не должно содержаться ни одного пробела. В противном случае, Octave выдаст сообщение об ошибке:
octave:13> 3 + 4 i
parse error:
3 + 4 i
^
Вы также можете использовать буквы «j», «I» или «J» вместо «i». Все эти обозначения будут эквивалентными.
— Встроенная функция: double (x)
- Преобразовывает x в число двойной точности.
— Function File: single (val)
- Convert the numeric value val to single precision.
This function currently returns its argument converted to double precision because Octave does not yet have a single-precision numeric data type. |
— Встроенная функция: complex (val)
— Встроенная функция: complex (re, im)
- Преобразовывает x в комплексное число.
Матрицы
[править]Записать матрицу чисел очень легко. Размер матрицы вычисляется автоматически. Выражение
a = [1, 2; 3, 4]
создаст матрицу вида
:
/ \
| 1 2 |
a = | |
| 3 4 |
\ /
Матрицы могут входить в произвольные выражения. Например, матрица выражения
[ a, a ]
производит матрицу
ans =
1 2 1 2
3 4 3 4
но выражение
[ a, 1 ]
приведёт к ошибке
error: number of rows must match near line 13, column 6
потому что размеры объектов a и 1 не совпадают (a — это матрица, a 1 — это просто число).
При записи матриц может возникать некоторая путаница. Ниже приводятся некоторые примеры таких недоразумений:
[ 1 - 1 ]
В этой записи '-' будет трактоваться как бинарный оператор, результатом которого будет число 0. Правильной будет запись следующего вида:
[ 1 -1 ]
Здесь '-' трактуется как унарный оператор, результатом такого выражения является вектор двух чисел [ 1 -1 ].
Выражение
[ sin (pi) ]
будет трактоваться как
[ sin, (pi) ]
и приведёт к ошибке, так как функция sin() была вызвана без аргументов.