напоминание

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

Синтаксис

B = prod(A)
B = prod(A,'all')
B = prod(A,dim)
B = prod(A,vecdim)
B = prod(___,type)
B = prod(___,nanflag)

Описание

пример

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(___,type) возвращает массив в классе, заданном type, с помощью любого из входных параметров в предыдущих синтаксисах. type может быть '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. 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.

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

Условие NaN, заданное как одно из этих значений:

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

  • 'omitnan' — Проигнорируйте значения NaN во входе. Если всеми элементами является NaN, то prod возвращается 1.

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

свернуть все

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

Класс B следующие:

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

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

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

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

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

Больше о

свернуть все

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

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

Например:

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

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

  • Если X является 1 1 3 массивами, то третья размерность является первой неодноэлементной размерностью X.

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

Смотрите также

| | |

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

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