exponenta event banner

cumsum

Символическая кумулятивная сумма

Описание

пример

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

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

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

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

пример

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

пример

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

пример

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

Примеры

свернуть все

Создайте символический вектор. Найдите совокупную сумму ее элементов.

syms x
A = (1:5)*x
A = (x2x3x4x5x)[x, 2*x, 3*x, 4*x, 5*x]

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

B = cumsum(A)
B = (x3x6x10x15x)[x, 3*x, 6*x, 10*x, 15*x]

Создание символьной матрицы 3 на 3 A элементы которых равны 1.

A = sym(ones(3))
A = 

(111111111)[sym(1), sym(1), sym(1); sym(1), sym(1), sym(1); sym(1), sym(1), sym(1)]

Вычислить совокупную сумму элементов A. По умолчанию cumsum возвращает совокупную сумму каждого столбца.

B = cumsum(A)
B = 

(111222333)[sym(1), sym(1), sym(1); sym(2), sym(2), sym(2); sym(3), sym(3), sym(3)]

Чтобы вычислить совокупную сумму каждой строки, задайте значение dim опция для 2.

B = cumsum(A,2)
B = 

(123123123)[sym(1), sym(2), sym(3); sym(1), sym(2), sym(3); sym(1), sym(2), sym(3)]

Создайте символическое множество 3 на 3 на 2.

syms x y
A(:,:,1) = [x y 3; 3 x y; y 2 x];
A(:,:,2) = [x y 1/3; 1 y x; 1/3 x 2];
A
A(:,:,1) = 

(xy33xyy2x)[x, y, sym(3); sym(3), x, y; y, sym(2), x]

A(:,:,2) = 

(xy131yx13x2)[x, y, sym(1/3); sym(1), y, x; sym(1/3), x, sym(2)]

Вычислите совокупную сумму вдоль строк, указав dim как 2. Укажите 'reverse' возможность работать справа налево в каждой строке. В результате получается тот же размер, что и A.

B = cumsum(A,2,'reverse')
B(:,:,1) = 

(x+y+3y+33x+y+3x+yyx+y+2x+2x)[x + y + 3, y + 3, sym(3); x + y + 3, x + y, y; x + y + 2, x + 2, x]

B(:,:,2) = 

(x+y+13y+1313x+y+1x+yxx+73x+22)[x + y + sym(1/3), y + sym(1/3), sym(1/3); x + y + 1, x + y, x; x + sym(7/3), x + 2, sym(2)]

Чтобы вычислить совокупную сумму вдоль третьего (страничного) измерения, укажите dim как 3. Укажите 'reverse' параметр для работы от индекса наибольшей страницы к индексу наименьшей страницы.

B = cumsum(A,3,'reverse')
B(:,:,1) = 

(2x2y1034x+yx+yy+13x+2x+2)[2*x, 2*y, sym(10/3); sym(4), x + y, x + y; y + sym(1/3), x + 2, x + 2]

B(:,:,2) = 

(xy131yx13x2)[x, y, sym(1/3); sym(1), y, x; sym(1/3), x, sym(2)]

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

A = [sym('a') sym('b') 1 NaN 2]
A = (ab1NaN2)[a, b, sym(1), sym(NaN), sym(2)]
B = cumsum(A)
B = (aa+ba+b+1NaNNaN)[a, a + b, a + b + 1, sym(NaN), sym(NaN)]

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

B = cumsum(A,'omitnan')
B = (aa+ba+b+1a+b+1a+b+3)[a, a + b, a + b + 1, a + b + 1, a + b + 3]

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

свернуть все

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

Размерность для работы, заданная как целочисленный скаляр. Если значение не указано, то по умолчанию используется первый размер массива, размер которого не равен 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 значения - это сумма всех не -NaN элементы. Если все элементы NaN, то cumsum возвращает 0.

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

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

свернуть все

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

Подробнее

свернуть все

Первое измерение Nonsingleton

Первое несинглтоновое измерение - это первое измерение массива, размер которого не равен 1.

Например:

  • Если X является вектором строки 1 на n, то второе измерение является первым несинглтонным измерением X.

  • Если X является пустым массивом 1-на-0-на-n, затем второе измерение является первым несинглтоновым измерением X.

  • Если X множество 1 на 1 на 3, тогда третье измерение - первое измерение неединичного предмета X.

См. также

| | | |

Представлен в R2013b