prod

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

Описание

пример

B = prod(A) возвращает произведение элементов массива A.

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

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

  • Если A - пустая матрица 0 на 0, prod(A) возвращает 1.

  • Если A является многомерным массивом, затем prod(A) действует вдоль первой размерности несинглтона и возвращает массив продуктов. Размер этой размерности уменьшается до 1 в то время как размеры всех других размерностей остаются неизменными.

prod вычисляет и возвращает B как single когда вход, A, есть single. Для всех других числовых и логических типов данных prod вычисляет и возвращает B как double.

пример

B = prod(A,'all') вычисляет продукт всех элементов A. Этот синтаксис действителен для MATLAB® версии R2018b и более поздние.

пример

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

пример

B = prod(A,vecdim) вычисляет продукт на основе размерностей, заданной в векторе vecdim. Для примера, если A является матрицей, тогда prod(A,[1 2]) является продуктом всех элементов в A, поскольку каждый элемент массива матрицы содержится в срезе массива, заданном размерностями 1 и 2.

пример

B = prod(___,outtype) возвращает массив в классе, заданном как outtype, с использованием любого из входных параметров в предыдущих синтаксисах. outtype можно 'double', 'native', или 'default'.

пример

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

Примеры

свернуть все

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

A=[1:3:7;2:3:8;3:3:9]
A = 3×3

     1     4     7
     2     5     8
     3     6     9

Найдите продукт элементов в каждом столбце. Длина первой размерности равна 1, а длина второго измерения совпадает size(A,2).

B = prod(A)
B = 1×3

     6   120   504

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

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

   1   0
   1   1

Найдите продукт элементов в каждом столбце.

B = prod(A)
B = 1×2

     1     0

У выхода есть тип double.

class(B)
ans = 
'double'

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

A=[1:3:7;2:3:8;3:3:9]
A = 3×3

     1     4     7
     2     5     8
     3     6     9

Найдите продукт элементов в каждой строке и уменьшите длину второго измерения до 1. Длина первой размерности совпадает с size(A,1), и длина второго измерения равна 1.

dim = 2;
B = prod(A,dim)
B = 3×1

    28
    80
   162

Создайте трехмерный массив и вычислите продукт по каждой странице данных (строки и столбцы).

A(:,:,1) = [2 4; -2 1];
A(:,:,2) = [1 2; -5 3];
A(:,:,3) = [4 4; 1 -3];
B1 = prod(A,[1 2])
B1 = 
B1(:,:,1) =

   -16


B1(:,:,2) =

   -30


B1(:,:,3) =

   -48

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

B2 = prod(A,[1 2 3])
B2 = -23040
Ball = prod(A,'all')
Ball = -23040

Создайте массив значений с одной точностью 3 на 3.

A = single([1200 1500 1800; 1300 1600 1900; 1400 1700 2000])
A = 3x3 single matrix

        1200        1500        1800
        1300        1600        1900
        1400        1700        2000

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

B = prod(A,2,'double')
B = 3×1
109 ×

    3.2400
    3.9520
    4.7600

Это выход двойной точности.

class(B)
ans = 
'double'

Создайте массив 3 на 3 из 8-битных беззнаковых целых чисел.

A = uint8([1:3:7;2:3:8;3:3:9])
A = 3x3 uint8 matrix

   1   4   7
   2   5   8
   3   6   9

Нахождение продукта элементов в каждом столбце начально в uint8.

B = prod(A,'native')
B = 1x3 uint8 row vector

     6   120   255

Результатом является массив из 8-битных беззнаковых целых чисел.

class(B)
ans = 
'uint8'

Создайте вектор и вычислите его продукт, исключая NaN значения. Если вы не задаете 'omitnan', затем prod(A) возвращает NaN.

A = [1 3 2 4 NaN 3 NaN 2];
P = prod(A,'omitnan')
P = 144

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

свернуть все

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

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

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

Размерность dim указывает размерность, длина которого уменьшается до 1. The size(B,dim) является 1, в то время как размеры всех других размерностей остаются неизменными.

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

  • Если dim = 1, затем prod(A,1) возвращает вектор-строку, содержащую продукт элементов в каждом столбце.

  • Если dim = 2, затем prod(A,2) возвращает вектор-столбец, содержащую продукт элементов в каждой строке.

prod возвращает A когда dim больше ndims(A).

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Рассмотрите массив входа 2 на 3 на 3, A. Затем prod(A,[1 2]) возвращает массив 1 на 1 на 3, элементы которого - продукты каждой страницы A.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходной класс, заданный как 'default', 'double', или 'native', и который определяет тип данных выхода, B.

outtypeВыход данных
'default'double, если только тип входных данных не single. В этом случае тип выходных данных single.
'double'double
'native'Совпадающий тип данных как массив входа, A

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

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

  • 'omitnan' - Игнорировать NaN значений во входе. Если все элементы NaN, затем prod возвращает 1.

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

свернуть все

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

Класс B является следующим:

  • Если на outtype аргумент задает 'default' или не используется

    • и вход не single, затем выводится double.

    • и вход следующий single, затем выводится single.

  • Если на outtype аргумент задает 'double', затем выводится double независимо от типа входных данных.

  • Если на outtype аргумент задает 'native', тогда выводится тот совпадающий тип данных, что и вход.

Подробнее о

свернуть все

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

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

Для примера:

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

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

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

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

..

См. также

| | |

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