exponenta event banner

cumprod

Совокупный продукт

Описание

пример

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

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

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

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

пример

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

пример

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

пример

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

Примеры

свернуть все

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

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

     1     2     6    24   120

Определите матрицу 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 = cumprod(A)
B = 3×3

     1     4     7
     2    20    56
     6   120   504

Определите матрицу 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 = cumprod(A,2)
B = 2×3

     1     3    15
     2     8    48

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

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

   1   0   1
   1   1   0

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

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

     1     0     0
     1     1     0

Вывод имеет тип 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 = cumprod(A,'reverse')
B = 3×3

   180    70   180
    20     7    60
     2     1    10

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

A = [1 3 NaN 2 4 NaN];
B = cumprod(A)
B = 1×6

     1     3   NaN   NaN   NaN   NaN

Проигнорировать NaN значения в кумулятивном расчете продукта с использованием 'omitnan' вариант.

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

     1     3     3     6    24    24

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

свернуть все

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

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

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

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

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

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

cumprod прибыль A если dim больше, чем ndims(A).

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

  • 'forward' работы из 1 кому end активного измерения.

  • 'reverse' работы из end кому 1 активного измерения.

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

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

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

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

свернуть все

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

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

Подробнее

свернуть все

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

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

Например:

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

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

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

Совет

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

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

..

См. также

| | | | |

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