cumsum

Совокупная сумма

Синтаксис

B = cumsum(A)
B = cumsum(A,dim)
B = cumsum(___,direction)
B = cumsum(___,nanflag)

Описание

пример

B = cumsum(A) возвращает совокупную сумму A, запускающегося в начале первого измерения массива в A, размер которого не равняется 1.

  • Если A является вектором, то cumsum(A) возвращает вектор, содержащий совокупную сумму элементов A.

  • Если A является матрицей, то cumsum(A) возвращает матрицу, содержащую совокупные суммы для каждого столбца A.

  • Если A является многомерным массивом, то cumsum(A) действует по первому неодноэлементному измерению.

пример

B = cumsum(A,dim) возвращает совокупную сумму элементов по измерению dim. Например, если A является матрицей, то cumsum(A,2) возвращает совокупную сумму каждой строки.

пример

B = cumsum(___,direction) опционально задает направление с помощью любого из предыдущих синтаксисов. Вы должны задать A, и опционально можете задать dim. Например, cumsum(A,2,'reverse') возвращает совокупную сумму в строках A путем работы от конца до начала второго измерения.

пример

B = cumsum(___,nanflag) задает, включать ли или не использовать значения NaN от вычисления для какого-либо из предыдущих синтаксисов. cumsum(A,'includenan') включает все значения NaN в вычисление, в то время как cumsum(A,'omitnan') игнорирует их.

Примеры

свернуть все

Найдите совокупную сумму целых чисел от 1 до 5. B(2) элемента является суммой A(1) и A(2), в то время как B(5) является суммой элементов A(1) через A(5).

A = 1:5;
B = cumsum(A)
B = 1×5

     1     3     6    10    15

Задайте 3х3 матрицу, элементы которой соответствуют своим линейным индексам.

A = [1 4 7; 2 5 8; 3 6 9]
A = 3×3

     1     4     7
     2     5     8
     3     6     9

Найдите совокупную сумму столбцов A. B(5) элемента является суммой A(4) и A(5), в то время как B(9) является суммой A(7), A(8) и A(9).

B = cumsum(A)
B = 3×3

     1     4     7
     3     9    15
     6    15    24

Задайте 2 3 матрица, элементы которой соответствуют своим линейным индексам.

A = [1 3 5; 2 4 6]
A = 2×3

     1     3     5
     2     4     6

Найдите совокупную сумму строк A. B(3) элемента является суммой A(1) и A(3), в то время как B(5) является суммой A(1), A(3) и A(5).

B = cumsum(A,2)
B = 2×3

     1     4     9
     2     6    12

Создайте массив логических значений.

A = [true false true; true true false]
A = 2x3 logical array

   1   0   1
   1   1   0

Найдите совокупную сумму строк A.

B = cumsum(A,2)
B = 2×3

     1     1     2
     1     2     2

Вывод имеет, вводят double.

class(B)
ans = 
'double'

Создайте 3х3 матрицу случайных целых чисел между 1 и 10.

rng default;
A = randi([1,10],3)
A = 3×3

     9    10     3
    10     7     6
     2     1    10

Вычислите совокупную сумму вдоль строк. Задайте опцию 'reverse', чтобы работать справа налево в каждой строке. Результат одного размера как A.

B = cumsum(A,2,'reverse')
B = 3×3

    22    13     3
    23    13     6
    13    11    10

Создайте вектор, содержащий стоимость NaN, и вычислите совокупные суммы. По умолчанию cumsum включает значения NaN. Когда вы включаете значения NaN в вычисление, совокупная сумма становится NaN, как только с первым значением NaN в A сталкиваются.

A = [3 5 NaN 9 0 NaN];
B = cumsum(A)
B = 1×6

     3     8   NaN   NaN   NaN   NaN

Можно проигнорировать значения NaN в вычислении совокупной суммы с помощью опции 'omitnan'.

B = cumsum(A,'omitnan')
B = 1×6

     3     8     8    17    17    17

Входные параметры

свернуть все

Входной массив, заданный как векторный, матричный или многомерный массив.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration
Поддержка комплексного числа: Да

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

Рассмотрите двумерный входной массив, A:

  • cumsum(A,1) работает над последовательными элементами в столбцах A и возвращает совокупные суммы каждого столбца.

  • cumsum(A,2) работает над последовательными элементами в строках A и возвращает совокупные суммы каждой строки.

cumsum возвращает A, если dim больше, чем ndims(A).

Направление накопления, заданного как 'forward' (значение по умолчанию) или 'reverse'.

  • 'forward' работает от 1 до end активной размерности.

  • 'reverse' работает от end до 1 активной размерности.

Типы данных: char

Условие NaN, заданное как одно из следующих значений:

  • 'includenan' — Включайте значения NaN от входа при вычислении совокупных сумм, приведении к значениям NaN в выводе.

  • 'omitnan' — Проигнорируйте все значения NaN во входе. Сумма элементов, содержащих значения NaN, является суммой всех non-NaN элементов. Если всеми элементами является NaN, то cumsum возвращается 0.

Типы данных: char

Выходные аргументы

свернуть все

Массив совокупной суммы, возвращенный как вектор, матрица или многомерный массив, одного размера как входной массив A.

Класс B совпадает с классом A кроме того, если A является logical, в этом случае B является double.

Больше о

свернуть все

Первая неодноэлементная размерность

Первая неодноэлементная размерность является первой размерностью массива, размер которого не равен 1.

Например:

  • Если X является вектором - строкой 1 на n, то второе измерение является первой неодноэлементной размерностью X.

  • Если X является 1 0 n пустым массивом, то второе измерение является первой неодноэлементной размерностью X.

  • Если X является 1 1 3 массивами, то третья размерность является первой неодноэлементной размерностью X.

Советы

  • Много кумулятивных функций в MATLAB® поддерживают опцию 'reverse'. Эта опция позволяет быстрые направленные вычисления, не будучи нужен в щелчке или отражении входного массива.

Расширенные возможности

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

| | | | | |

Представлено до R2006a