сумма

Сумма элементов массива

Синтаксис

S = sum(A)
S = sum(A,'all')
S = sum(A,dim)
S = sum(A,vecdim)
S = sum(___,outtype)
S = sum(___,nanflag)

Описание

пример

S = sum(A) возвращает сумму элементов массива вдоль первого измерения массива, размер которого не равняется 1.

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

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

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

пример

S = sum(A,'all') вычисляет сумму всех элементов A.

пример

S = sum(A,dim) возвращает сумму по измерению dim. Например, если A является матрицей, то sum(A,2) является вектором - столбцом, содержащим сумму каждой строки.

пример

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

пример

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

пример

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

Примеры

свернуть все

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

A = 1:10;
S = sum(A)
S = 55

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

A = [1 3 2; 4 2 5; 6 1 4]
A = 3×3

     1     3     2
     4     2     5
     6     1     4

S = sum(A)
S = 1×3

    11     6    11

Создайте матрицу и вычислите сумму элементов в каждой строке.

A = [1 3 2; 4 2 5; 6 1 4]
A = 3×3

     1     3     2
     4     2     5
     6     1     4

S = sum(A,2)
S = 3×1

     6
    11
    11

Используйте векторный аргумент размерности, чтобы работать с определенными срезами массива.

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

A = ones(4,3,2);

Чтобы суммировать все элементы на каждой странице A, задайте размерности, в которых можно суммировать (строка и столбец) с помощью векторного аргумента размерности. Поскольку обе страницы 4 3 матрица из единиц, сумма каждой страницы равняется 12.

S1 = sum(A,[1 2])
S1 = 
S1(:,:,1) =

    12


S1(:,:,2) =

    12

Если вы нарезаете A по первому измерению, можно суммировать элементы получившихся 4 страниц, которые являются каждым 3 2 матрицы.

S2 = sum(A,[2 3])
S2 = 4×1

     6
     6
     6
     6

Режущий вдоль второго измерения, каждая сумма страницы по 4 2 матрица.

S3 = sum(A,[1 3])
S3 = 1×3

     8     8     8

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

S4 = sum(A,[1 2 3])
S4 = 24
Sall = sum(A,'all')
Sall = 24

Создайте 4 2 3 массивами из единиц и вычислите сумму по третьему измерению.

A = ones(4,2,3);
S = sum(A,3)
S = 4×2

     3     3
     3     3
     3     3
     3     3

Создайте вектор 32-битных целых чисел и вычислите сумму int32 его элементов путем определения выходного типа как native.

A = int32(1:10);
S = sum(A,'native')
S = int32
    55

Создайте вектор и вычислите его сумму, исключая значения NaN.

A = [1.77 -0.005 3.98 -2.95 NaN 0.34 NaN 0.19];
S = sum(A,'omitnan')
S = 3.3250

Если вы не задаете 'omitnan', то sum(A) возвращает NaN.

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

свернуть все

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

  • Если A является скаляром, то sum(A) возвращает A.

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

Типы данных: единственный | удваиваются | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический | char | длительность
Поддержка комплексного числа: Да

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

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

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

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

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

sum возвращает A, когда dim больше, чем ndims(A) или когда size(A,dim) является 1.

Типы данных: удвойтесь | единственный | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

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

Типы данных: удвойтесь | единственный | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Тип выходных данных, заданный как 'default', 'double' или 'native'. Эти опции также задают тип данных, в котором выполняется операция.

outtype Тип выходных данных
'default'double, если типом входных данных не является single или duration, в этом случае, вывод, является 'native'
'double'double, если типом данных не является duration, в этом случае, 'double', не поддержан
'native'совпадающий тип данных как входной параметр, если типом входных данных не является char, в этом случае, 'native', не поддержан

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

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

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

  • 'omitnan' — Проигнорируйте все значения NaN во входном параметре.

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

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

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

Была ли эта тема полезной?