Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.0.0 - Русский


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() может быть надёжно использован для последовательностей кодированных целых чисел.
Report an issue
<< eye Элементарные матрицы logspace >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Mar 07 09:28:41 CET 2023