Перейти к содержанию

GNU Octave/Типы числовых данных

Материал из Викиучебника — открытых книг для открытого мира

Константа может быть скалярной величиной, вектором или матрицей, и может содержать комплексные переменные.

Простейший вид константы — скалярная величина — число, которое может быть целым, десятичной дробью, числом в научной (экспоненциальной) записи или комплексным числом.

Информация

По умолчанию константы представляются в Octave числом с плавающей точкой двойной точности (комплексные константы хранятся парами таких значений). It is however possible to represent real integers as described in Integer Data Types.

Вот несколько примеров некоторых констант:

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() была вызвана без аргументов.