sum

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

Описание

пример

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

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

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

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

пример

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

пример

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

Начиная с R2018b, чтобы суммировать по всем размерностям массива, можно либо задать каждый размер в аргументе векторного измерения, либо использовать '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.

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

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

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

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

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

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

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

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

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

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

Типы данных: double | single | 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