Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Основные функции > Элементарные матрицы > linspace

linspace

генерирует линейно распределённые числа между двумя достижимыми границами

Синтаксис

row = linspace(x1, x2)
row = linspace(x1, x2, n)
Matrix = linspace(Col1, Col2)
Matrix = linspace(Col1, Col2, n)

Аргументы

x1, x2

Вещественные или комплексные скаляры, или кодированные целочисленные скаляры: границы между которыми должны быть сгенерированы значения.

Col1, Col2

Вектор-столбцы одинаковой высоты, состоящие из вещественных или комплексных чисел или кодированных целочисленных скаляров.

n

целое количество запрошенных значений или столбцов. Значение по умолчанию: 100.

row

вектор-строка из n чисел.

Matrix

Матрица, в которой n столбцов чисел.

Описание

linspace(x1, x2) генерирует вектор-строку из n равномерно распределённых значений в диапазоне точно от x1 до x2.

Синтаксис y1:y2 или y1:step:y2 наподобие 1:0.1:%pi делает то же самое, но фиксирует начальную границу y1 и шаг step. Переменная y2 используется в качестве границы остановки, через которую нельзя переступить. Последнее значение, которое фактически будет сгенерировано, может не достичь её. В этом случае y2 не включено в результат.

Вместо фиксированного шага указанным значением, функция linspace фиксирует конечную границу x2, которая точно будет достигнута и вычисляет соответствующий шаг.

Если x1 или x2 являются комплексными числами, то linspace(x1,x2) интерполирует отдельно вещественную и мнимую части x1 и x2.

Если указаны вектор-столбцы Col1 и Col2, то функция linspace работает по строкам: результирующая матрица Matrix имеет то же количество строк и n столбцов, которое мы получим Matrix(i,:) = linspace(Col1(i), Col2(i), n).

В случае, когда указанные границы являются кодированными целыми числами, то фактический шаг может колебаться на единицу в последовательности.

Примеры

linspace(1, %pi, 0)         // n = 0
linspace(1, 2, 10)          // x2 > x1 : значения увеличиваются
linspace(2, 1, 10)          // x2 < x1 : значения уменьшаются
linspace(1+%i, 2-2*%i, 5)      // с комплексными числами
linspace([1:4]', [5:8]', 10)   // со столбцами на входе
--> linspace(1, %pi, 0)    // n = 0
 ans  =
    []

--> linspace(1, 2, 10)    // x2 > x1 : значения увеличиваются
 ans  =
   1.   1.111   1.222   1.333   1.444   1.556   1.667   1.778   1.889   2.

--> linspace(2, 1, 10)    // x2 < x1 : значения уменьшаются
 ans  =
   2.   1.889   1.778   1.667   1.556   1.444   1.333   1.222   1.111   1.

--> linspace(1+%i, 2-2*%i, 5)      // с комплексными числами
 ans  =
   1. +i     1.25 +0.25i   1.5 -0.5i   1.75 -1.25i   2. -2.i

--> linspace([1:4]', [5:8]', 10)   // со столбцами на входе
 ans  =
   1.   1.444   1.889   2.333   2.778   3.222   3.667   4.111   4.556   5.
   2.   2.444   2.889   3.333   3.778   4.222   4.667   5.111   5.556   6.
   3.   3.444   3.889   4.333   4.778   5.222   5.667   6.111   6.556   7.
   4.   4.444   4.889   5.333   5.778   6.222   6.667   7.111   7.556   8.

С кодированными целыми числами: Шаг может колебаться на единицу в последовательности:

x = linspace(int8([5;127]), int8([127;5]), 10)
x(:,1:$-1) - x(:,2:$)
--> x = linspace(int8([5;127]), int8([127;5]), 10)
 ans  =
    5   18   32  45  59  72  86  99  113  127
  127  114  100  87  73  60  46  33   19    5

--> x(:,1:$-1) - x(:,2:$)
 ans  =
 -13 -14 -13 -14 -13 -14 -13 -14 -14
  13  14  13  14  13  14  13  14  14

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

  • colon — оператор "двоеточие"
  • logspace — вектор с интервалами между элементами в логарифмическом масштабе
  • grand — Случайные числа

История

ВерсияОписание
5.4.0
  • Могут быть указаны вектор-столбцы.
  • Третьим входным аргументом (n) должно быть целое значение.
6.0
  • linspace(a, b, n<=0) теперь возвращает [] вместо b.
  • Границы теперь проверяются на значения %inf или %nan.
6.0.2 Теперь linspace() может быть надёжно использован для последовательностей кодированных целых чисел.
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Feb 14 15:04:54 CET 2019