# complex

Создание комплексного числа.

## Последовательность вызова

                c=complex(a)
                c=complex(a,b)

## Аргументы

a

  вещественная матрица значений двойной точности размером 1 на 1 или `n` на `m`, реальная часть. Если `a` имеет мнимую часть, то сформируется ошибка.

b

  вещественная матрица значений двойной точности размером 1 на 1 или `n` на `m`, реальная часть (по умолчанию `b=0`). Если `b` имеет мнимую часть, то сформируется ошибка.

c

  комплексная матрица значений двойной точности размером `n` на `m`, комплексное число.

## Описание

`c=complex(a)` создаёт комплексное число из его реальной части `a` и нуля в качестве мнимой части.

`c=complex(a,b)` создаёт комплексное число из его реальной части `a` и мнимой части `b`.

Эта функция является заменой для таких выражений как `a+%i*b`, особенно в случаях, когда комплексная арифметика пересекается с особыми числами с плавающей запятой, такими как `%inf` или `%nan`.

## Примеры

В следующем примере мы создадим комплексное число из его реальной и мнимой части.

    complex(1,2)
    complex([1 2],[3 4])

Если определено только `a`, то мнимая часть устанавливается равной нулю.

    complex([1 2 3])

Если `a` является скаляром, а `b` является матрицей, то результат `c` имеет тот же размер, что и `b`. Аналогично, если `a` является матрицей, а `b` является скаляром, то результат `c` имеет тот же размер, что и `a`.

    c = complex([1 2 3], 4)
    c = complex(1, [2 3 4])

Если `a` и `b` являются матрицами разных размеров, то сформируется ошибка, как в следующем примере.

    -->complex(ones(2,3),ones(4,5))
     !--error 10000
    complex: Несовместимые входные параметры №1 и №2: ожидались одинаковые размеры.
    at line      33 of function complex called by :
    complex(ones(2,3),ones(4,5))

Целью функции `complex` является управление числами с плавающей запятой, такими как нечисловые значения (`Nan`) или бесконечность (`Inf`). На следующем примере мы покажем, что создание комплексного числа, у которого реальная и мнимая части являются комплексными, не простое дело, если мы используем комплексную арифметику. Это из-за того, что произведение `%i` на `%inf` вычисляется как `(0+%i) * (%inf+%i*0)`. Это даёт промежуточное выражение `0*%inf`, которое равно `%nan`.

    -->%inf+%i*%inf
     ans  =
        Nan + Inf

Решением этой проблемы является использование функции `complex`.

    -->complex(%inf,%inf)
     ans  =
        Inf + Inf

## Смотрите также

- imult