cumprod

Совокупное произведение

Синтаксис

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

Описание

пример

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, является продукт всех non-NaN элементов. Если всеми элементами является NaN, то cumprod возвращается 1.

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

свернуть все

Массив совокупного произведения, возвращенный как вектор, матрица или многомерный массив, одного размера как входной массив 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

Для просмотра документации необходимо авторизоваться на сайте