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


cumsum

суммирование элементов массива с накоплением

Синтаксис

y = cumsum(x)
y = cumsum(x, outtype)
y = cumsum(x, orientation)
y = cumsum(x, orientation, outtype)

Аргументы

x

массив вещественных, комплексных, логических значений, а также полиномов или рациональных дробей. Гиперматрицы или разрежённые логические или числовые матрицы так же поддерживаются.

orientation

ориентация, она может быть:

  • строкой с возможными значениями: "*", "r", "c" или "m"

  • или положительное целое число 1 ≤ orientation ≤ ndims(x): индекс размерности, вдоль которой сумма с накоплением должна быть вычислена. 1 и "r", и 2 и "c" эквивалентны.

outtype

тип на выходе: строка с возможными значениями: "native" или "double".

y

Array of size equal to that of x.

Описание

y = cumsum(x) computes and provides the partial cumulative sums y(i)=sum(x(1:i)), i.e.:

y(i) = ∑u=1→i x(u)

y = cumsum(x, orientation) computes and returns the partial cumulative sums of x along the dimension given by orientation:

  • если orientation равна 1 или "r", то:

    y(i,j) = ∑u=1→i x(u,j), или для N-мерного массива :

    y(i,j,k,…) = ∑u=1→i x(u,j,k,…)

  • если orientation равна 2 или "c", то:

    y(i,j) = ∑u=1→j x(i,u), или для N-мерного массива :

    y(i,j,k,…) = ∑u=1→j x(i,u,k,…)

  • если orientation равна n, то:

    y(i₁,…,iₙ₋₁, iₙ,iₙ₊₁,…) = ∑u=1…iₙ  x(i₁,…,iₙ₋₁, u,iₙ₊₁,…)

  • y = cumsum(x, "*") эквивалентно y = cumsum(x)

  • y = cumsum(x, "m") эквивалентно y = cumsum(x, orientation), где orientation является индексом первой размерности x, которая больше 1. Эта опция используется для совместимости с Matlab'ом.

Аргумент outtype управляет способом, которым производится суммирование:

  • Для массивов чисел с плавающей запятой, полиномов, рациональных дробей вычисление всегда делается через вычисления с плавающей запятой. Опции "double" и "native" ("естественное") эквивалентны.

  • Для массивов целых чисел:

    если outtype="native" ("естественное"), то вычисление делается через целочисленные вычисления (по модулю 2^b, где b - число используемых битов);

    если outtype="double", то вычисление делается через вычисления с плавающей запятой.

    Значение по умолчанию outtype="native".

  • Для массивов логических значений:

    если outtype="native" ("естественное"), то вычисления делаются с помощью булевой алгебры (+ заменяется на |),

    если outtype="double", то вычисление делается через вычисления с плавающей запятой (значения %t заменяются на 1, а значения %f - на 0).

    Значение по умолчанию outtype="double".

Когда входная переменная x является разрежённой, пожалуйста, имейте ввиду, что плотность результата y будет почти всегда близка к 100%.

Примеры

A = [1, 2 ; 3, 4];
cumsum(A)
cumsum(A,1)

I = uint8([2 95 103 ; 254 9 0])
cumsum(I)   // естественное вычисление
cumsum(I,"double")
cumsum(I,2,"double")

s = poly(0,"s");
P = [s, %i+s ; s^2, 1];
cumsum(P),
cumsum(P,2)

B = [%t %t %f %f];
cumsum(B)          // вычисление с плавающей запятой
cumsum(B,"native") // аналогично or(B)

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

  • sum — сумма элементов массива
  • cumprod — произведение элементов массива с накоплением
Report an issue
<< cumprod Матричные операции kron .*. >>

Copyright (c) 2022-2023 (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:
Mon May 22 12:41:12 CEST 2023