cumprod

Символическое совокупное произведение

Описание

пример

B = cumprod(A) возвращает совокупное произведение A начиная с начала измерения массива в A чей размер не равен 1. Область выхода B имеет тот же размер, что и A.

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

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

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

пример

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

пример

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

пример

B = cumprod(___,nanflag) определяет, включать или опускать NaN значения из вычисления для любого из предыдущих синтаксисов. cumprod(A,'includenan') включает все NaN значения в вычислении при cumprod(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 = cumprod(A)
B = (x2x26x324x4120x5)[x, 2 * x ^ 2, 6 * x ^ 3, 24 * x ^ 4, 120 * x ^ 5]

Создайте символьную матрицу 3 на 3 A все элементы которого x.

syms x
A = ones(3)*x
A = 

(xxxxxxxxx)[x, x, x; x, x, x; x, x, x]

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

B = cumprod(A)
B = 

(xxxx2x2x2x3x3x3)[x, x, x; x ^ 2, x ^ 2, x ^ 2; x ^ 3, x ^ 3, x ^ 3]

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

B = cumprod(A,2)
B = 

(xx2x3xx2x3xx2x3)[x, x ^ 2, x ^ 3; x, x ^ 2, x ^ 3; x, x ^ 2, x ^ 3]

Создайте символьный массив 3 на 3 на 2.

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

(xy0x3xyx13y)[x, y, sym (0); x, sym (3), x * y; x, sym (1/3), y]

A(:,:,2) = 

(xy33xyy3x)[x, y, sym (3); sym (3), x, y; y, sym (3), x]

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

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

(0003x2y3xyxyxy3y3y)[sym (0), sym (0), sym (0); 3 * x ^ 2 * y, 3 * x * y, x * y; (x * y )/3, y/3, y]

B(:,:,2) = 

(3xy3y33xyxyy3xy3xx)[3 * x * y, 3 * y, sym (3); 3 * x * y, x * y, y; 3 * x * y, 3 * x, x]

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

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

(x2y203x3xxy2xy1xy)[x ^ 2, y ^ 2, sym (0); 3 * x, 3 * x, x * y ^ 2; x * y, sym (1), x * y]

B(:,:,2) = 

(xy33xyy3x)[x, y, sym (3); sym (3), x, y; y, sym (3), x]

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

A = [sym('a') sym('b') 1 NaN 2]
A = (ab1NaN2)[a, b, sym (1), sym (NaN), sym (2)]
B = cumprod(A)
B = (aababNaNNaN)[a, a * b, a * b, sym (NaN), sym (NaN)]

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

B = cumprod(A,'omitnan')
B = (aababab2ab)[a, a * b, a * b, a * b, 2 * a * b]

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

свернуть все

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

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

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

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

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

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

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

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

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

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

NaN условие, заданное как:

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

  • 'omitnan' - Игнорировать все NaN значений во входе. Продукт элементов, содержащих NaN значения являются продуктом всех не- NaN элементы. Если все элементы NaN, затем cumprod возвращает 1.

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

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

свернуть все

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

Подробнее о

свернуть все

Первый несинглтон Размерность

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

Для примера:

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

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

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

См. также

| | | |

Введенный в R2013b