Elettracompany.com

Компьютерный справочник
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Сумма всех элементов матрицы matlab

Сумма всех элементов матрицы matlab

1.6. Операции над матрицами и векторами

В системе MatLab достаточно просто выполняются математические операции над матрицами и векторами. Рассмотрим сначала простые операции сложения и умножения матриц и векторов. Пусть даны два вектора

a = [1 2 3 4 5]; % вектор-строка
b = [1; 1; 1; 1; 1]; % вектор-столбец

тогда умножение этих двух векторов можно записать так

c = a*b; % c=1+2+3+4+5=16
d = b*a; % d – матрица 5х5 элементов

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

Сложение и вычитание двух векторов записывается так

a1 = [1 2 3 4 5];
a2 = [5 4 3 2 1];
c = a1+a2; % c = [1+5, 2+4, 3+3, 4+2, 5+1];
с = a2-a1; % c = [5-1, 4-2, 3-3, 2-4, 1-5];

Следует обратить внимание, что операции сложения и вычитания можно выполнять между двумя векторами-столбцами или двумя векторами-строками. Иначе MatLab выдаст сообщение об ошибке, т.к. разнотипные векторы складывать нельзя. Так обстоит дело со всеми недопустимыми арифметическими операциями: в случае невозможности их вычисления система MatLab сообщит об ошибке и выполнение программы будет завершено на соответствующей строке.

Аналогичным образом выполняются операции умножения и сложения между матрицами:

A = [1 2 3; 4 5 6; 7 8 9];
B = ones(3);
C = A+B; % сложение двух матриц одинакового размера
D = A+5; % сложение матрицы и числа
E = A*B; % умножение матрицы А на В
F = B*A; % умножение матрицы В на А
G = 5*A; % умножение матрицы на число

Операции вычисления обратной матрицы, а также транспонирования матриц и векторов, записываются следующим образом:

a = [1 1 1]; % вектор-строка
b = a’; % вектор-столбец, образованный
% транспонированием вектора-строки а.
A = [1 2 3; 4 5 6; 7 8 9]; % матрица 3х3 элемента
B = a*A; % B = [12 15 18] – вектор-строка
C = A*b; % C = [6; 15; 24] – вектор-столбец
D = a*A*a’; % D = 45 – число, сумма эл-ов матрицы А
E = A’; % E – транспонированная матрица А
F = inv(A); % F – обратная матрица А
G = A^-1; % G – обратная матрица А

Из приведенного примера видно, что операция транспонирования матриц и векторов обозначается символом ‘ (апостроф), который ставится после имени вектора или матрицы. Вычисление обратной матрицы можно делать путем вызова функции inv() или возводя матрицу в степень -1. Результат в обоих случаях будет одинаковым, а два способа вычисления сделано для удобства использования при реализации различных алгоритмов.

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

.* — поэлементное умножение;
./ и . — поэлементные деления;
.^ — поэлементное возведение в степень.

Рассмотрим работу данных операторов на следующем примере.

a = [1 2 3]; % вектор-строка
b = [3 2 1]; % вектор-строка
c = a.*b; % c = [3 4 3]
A = ones(3); % матрица 3х3, состоящая из единиц
B = [1 2 3;4 5 6; 7 8 9]; % матрица 3х3
C = A.*B; % матрица 3х3, состоящая из
D = A./B; % матрица 3х3, состоящая из
E = A.B; % матрица 3х3, состоящая из
F = A.^2; % возведение элементов матрицы А в квадрат

В заключении данного параграфа рассмотрим несколько функций полезных при работе с векторами и матрицами.

Для поиска максимального значения элемента вектора используется стандартная функция max(), которая возвращает найденное максимальное значение элемента и его позицию (индекс):

a = [1 6 3 4];
[v, i] = max(a); % v = 6, i = 2;

Приведенный пример показывает два разных способа вызова функции max(). В первом случае определяется и максимальное значение элемента и его индекс в векторе, а во втором – только максимальное значение элемента.

В случае с матрицами, данная функция определяет максимальные значения, стоящие в столбцах, как показано ниже в примере:

A = [4 3 5; 6 7 2; 3 1 8];
[V, I] = max(A); % V=[6 7 8], I = [2 2 3]
V = max(A); % V=[6 7 8]

Полный синтаксис функции max() можно узнать, набрав в командном окне MatLab команду

Аналогичным образом работает функция min(), которая определяет минимальное значение элемента вектора или матрицы и его индекс.

Другой полезной функцией работы с матрицами и векторами является функция sum(), которая вычисляет сумму значений элементов вектора или столбцов матрицы:

a = [3 5 4 2 1];
s = sum(a); % s = 3+5+4+2+1=15
A = [4 3 5; 6 7 2; 3 1 8];
S1 = sum(A); % S1=[13 11 15]
S2 = sum(sum(A)); % S2=39

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

Для сортировки значений элементов вектора или матрицы по возрастанию или убыванию используется функция sort() следующим образом:

b1 = sort(a); % b1=[1 2 3 4 5]
b2 = sort(a, ‘descend’); % b2=[5 4 3 2 1]
b3 = sort(a, ‘ascend’); % b3=[1 2 3 4 5]

A = [4 3 5; 6 7 2; 3 1 8];
B1 = sort(A); % B1=[3 1 2
% 4 3 5
% 6 7 8]
B2 = sort(A, ‘descend’); % B2=[6 7 8
% 4 3 5
% 3 1 2]

Во многих практических задачах часто требуется найти определенный элемент в векторе или матрице. Это можно выполнить с помощью стандартной функции find(), которая в качестве аргумента принимает условие, в соответствии с которым и находятся требуемые элементы, например:

a = [3 5 4 2 1];
b1 = find(a == 2); % b1 = 4 – индекс элемента 2
b2 = find(a

= 2); % b2 = [1 2 3 5] – индексы без 2
b3 = find(a > 3); % b3 = [2 3]

В приведенном примере символ ‘==’ означает проверку на равенство, а символ ‘

=’ выполняет проверку на неравенство значений элементов вектора а. Более подробно об этих операторах будет описано в разделе условные операторы.

Еще одной полезной функцией работы с векторами и матрицами является функция mean() для вычисления среднего арифметического значения, которая работает следующим образом:

a = [3 5 4 2 1];
m = mean(a); % m = 3
A = [4 3 5; 6 7 2; 3 1 8];
M1 = mean(A); % M1 = [4.333 3.667 5.000]
M2 = mean(mean(A)); % M2 = 4.333

Эффективный (быстрый) способ суммирования элементов матрицы в matlab

давайте матрица A сказать A = magic(100); . Я видел 2 способа вычисления суммы всех элементов матрицы A .

один из них быстрее (или лучше практиковать), то другие? Если да, то какой? Или они оба одинаково быстры?

2 ответов

кажется, что вы не можете решить, является ли производительность или точность с плавающей запятой более важной.

если бы точность с плавающей запятой была первостепенной точностью, то вы бы разделили положительные и отрицательные элементы, сортируя каждый сегмент. Затем суммируем в порядке возрастания абсолютной величины. Да, я знаю, это больше работы, чем кто-либо мог бы сделать, и это, вероятно, будет пустой тратой времени.

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

что касается времени, для массива NxM,

sum (A (:)) потребует N*M-1 дополнений.

sum (sum (A)) потребует (N-1)*M + M-1 = N*M-1 дополнений.

для любого метода требуется одинаковое количество добавлений, поэтому для большого массива, даже если интерпретатор недостаточно умен, чтобы распознать, что они оба являются одинаковыми op, которые заботится?

Читать еще:  Защитное слово проекта

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

Edit: в ответ на комментарий Amro об ошибках для одного метода над другим, вы мало что можете контролировать. Дополнения будут сделаны в другом порядке, но нет никакой уверенности в том, какая последовательность будет лучше.

эти два решения довольно близки. На самом деле, по сравнению с eps, разница едва значительное.

Предположим, вы выбираете трюк разделения и сортировки, о котором я упоминал. Смотрите, чтобы отрицательная и положительная части были достаточно большими, чтобы произошла потеря точности.

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

интересная проблема возникает даже в этих тестах. Будет ли проблема, потому что тесты выполняются на случайном (нормальном) массиве? По сути, мы можем рассматривать sum (A (:)) как случайное блуждание, прогулку пьяницы. Но рассмотрим sum(sum (A)). Каждый элемент sum (A) (т. е. внутренняя сумма) сам по себе является суммой 1000 нормальных отклонений. Взгляните на некоторые из них:—8—>

когда мы сложим их, будет потеря точности. Таким образом, потенциально операция как sum (A (:)) может быть немного более точной. Так ли это? Что, если мы используем более высокую точность для накопления? Итак, сначала я сформирую сумму по столбцам, используя Double, затем преобразуйте в 25 цифр десятичной точности и суммируйте строки. (Я отобразил здесь только 20 цифр, оставив 5 цифр скрытыми в качестве охранных цифр.)

или, вместо этого, немедленно преобразовать в 25 цифр точности, а затем суммировать результат.

таким образом, обе формы с двойной точностью были одинаково неправильными здесь, в противоположных направлениях. В конце концов, это все спорно, так как любая из альтернатив, которые я показал, намного более трудоемка по сравнению с простой вариации sum (A (:)) или sum(sum (A)). Просто выбери одну из них и не волнуйтесь.

производительность, я бы сказал, что оба очень похожи (предполагая недавнюю версию MATLAB). Вот быстрый тест с помощью TIMEIT функция:

то, о чем я бы беспокоился, это проблемы с плавающей запятой. Пример:

увеличивается величина ошибки для больших матриц

Документация

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

Синтаксис

Описание

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’) игнорирует их.

Примеры

Сумма векторных элементов

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

Сумма столбцов матрицы

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

Сумма матричных строк

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

Сумма срезов массивов

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

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

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

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

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

Начиная в R2018b, суммировать по всем размерностям массива, можно или задать каждую размерность в векторном аргументе размерности или использовать ‘all’ опция.

Сумма трехмерного массива

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

Сумма 32-битных Целых чисел

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

Сумма, исключая NaN

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

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

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

A — Входной массив
вектор | матрица | многомерный массив

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

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

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

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

dim — Размерность, которая задает направление расчета
положительный целочисленный скаляр

Величина для работы, заданная как положительный целый скаляр. Если значение не задано, то по умолчанию это первый размер массива, не равный 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 .

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

vecdim — Вектор размерностей
вектор положительных целых чисел

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

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

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

outtype — Тип выходных данных
‘default’ (значение по умолчанию) | ‘double’ | ‘native’

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

Читать еще:  Решение слау matlab

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

nanflag NaN условие
‘ includenan ’ (значение по умолчанию) | ‘ omitnan ’

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

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

‘omitnan’ — Проигнорируйте весь NaN значения во входе.

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

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

«Высокие» массивы
Осуществление вычислений с массивами, которые содержат больше строк, чем помещается в памяти.

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Указания и ограничения по применению:

Если вы задаете dim , затем это должна быть константа.

outtype и nanflag опции должны быть постоянными векторами символов.

Генерация кода графического процессора
Сгенерируйте код CUDA® для NVIDIA® графические процессоры с помощью GPU Coder™.

Указания и ограничения по применению:

Если вы задаете dim , затем это должна быть константа.

outtype и nanflag опции должны быть постоянными векторами символов.

Массивы графического процессора
Ускорьте код путем работы графического процессора (GPU) с помощью Parallel Computing Toolbox™.

Указания и ограничения по применению:

Порядок сложений в sum операция не задана. Поэтому sum операция на массиве графического процессора не может дать точно тот же ответ как sum операция на соответствующем числовом массиве MATLAB. Различие может быть значительным когда A тип целого числа со знаком, и его продукт накапливается исходно.

Для получения дополнительной информации смотрите функции MATLAB Выполнения на графическом процессоре (Parallel Computing Toolbox).

Распределенные массивы
Большие массивы раздела через объединенную память о вашем кластере с помощью Parallel Computing Toolbox™.

Указания и ограничения по применению:

Порядок сложений в sum операция не задана. Поэтому sum операция на распределенном массиве не может дать точно тот же ответ как sum операция на соответствующем числовом массиве MATLAB. Различие может быть значительным когда A тип целого числа со знаком, и его продукт накапливается исходно.

Для получения дополнительной информации смотрите функции MATLAB Выполнения с Распределенными Массивами (Parallel Computing Toolbox).

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

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

Открытый пример

У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?

Документация MATLAB
Поддержка

© 1994-2020 The MathWorks, Inc.

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

Сумма элементов разных строк матрицы

Функция вычисления суммы строк матрицы, сумма элементов которых отрицательна
Здравствуйте! Помогите, пожалуйста, с задачкой Написать функцию, принимающую в качестве.

Сформировать массив A1 из минимальных элементов строк матрицы А и массив B1 из максимальных элементов матрицы B
Сформировать массив A1 из минимальных элементов строк матрицы А и массив B1 из максимальных.

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

Сумма соответствующих элементов матрицы
Помогите пожалуйста. Допустим есть матрица 10-ого порядка. Как сложить соответствующие элементы.

Спасибо за отклик. Задание конечно изложено запутано. Но вот простой пример:
Если взять матрицу А размером 3х2, то получится следующее:
сумма_1 = а(1,1)+а(2,1)+а(3,1)
сумма_2 = а(1,2)+а(2,2)+а(3,2)
сумма_3 = а(1,1)+а(2,1)+а(3,2)
сумма_4 = а(1,1)+а(2,2)+а(3,2)
сумма_5 = а(1,2)+а(2,1)+а(3,2)
сумма_6 = а(1,2)+а(2,2)+а(3,1)
Скорее всего не все варианты перечислил, но суть, думаю, ясна. В моей задаче скорее m векторов, с разным количеством элементов, а не матрица.
Конечной целью было найти максимальную из сумм. Хотя, кажется, от такого прямого перебора придётся отказаться, если векторов и элементов в них будет слишком много, то ресов компа просто не хватит, чтобы закончить расчёт в адекватные сроки.

Добавлено через 17 минут
Ах да, надо найти максимальную из сумм при определённых ограничениях для элементов, по которым вычисляются элементы векторов, иначе задача была бы слишком простой. Будут искать какой-нибудь оптимизационный метод.

пока что суть ясна только вам.

Так задачу не ставят. Где эти ограничения, при чём здесь оптимизация?

Если надо найти максиальную суму сложеную из элементов разных векторов, то сложите максимальные елементы из каждого вектора.
где в этих формулах вектора о которых идёт речь (f, mu, sigma)? Какой вид имеет функция Ф?
Потеряна скобка в первом уравнении.
Набор натуральных чисел N состоит только из числа 17?

Функция f — функция нормального распределения с соответствующеми параметрами. 17 это верхний предел изменения индекса k. Векторов у меня получается 17 и все они разной длины, так m при каждом k имеет разный предел изменения. Через операции с векторами я и хотел решить задачу перебором возможных решений, проверяя каждое решение на ограничение.
В том-то и дело, что просто сложить максимальные элементы каждого вектора и получить максимальную сумму не получится. Так как при таком очевидном решении ограничение может быть и не соблюдено. Потому что каждый элемент вектора (представляющий собой внутреннюю сумму целевой функции) вычисляется в зависимости от значения параметра xk, на сумму которых и накладывается ограничение. То есть эти самые 17 значений параметра xk, удовлетворяющие ограничению, совсем не обязательно дают максимальные элементы для каждого из векторов. Не будь этого ограничения, задача действительно решалась бы просто.

Добавлено через 3 часа 54 минуты
Буду решать задачу о ранце методом ДП. Тема исчерпана.

Сумма всех элементов матрицы matlab

Sum of array elements

Syntax

Description

S = sum( A ) returns the sum of the elements of A along the first array dimension whose size does not equal 1.

If A is a vector, then sum(A) returns the sum of the elements.

If A is a matrix, then sum(A) returns a row vector containing the sum of each column.

If A is a multidimensional array, then sum(A) operates along the first array dimension whose size does not equal 1, treating the elements as vectors. This dimension becomes 1 while the sizes of all other dimensions remain the same.

S = sum( A , ‘all’ ) computes the sum of all elements of A . This syntax is valid for MATLAB ® versions R2018b and later.

Читать еще:  Решение дифференциальных уравнений в matlab

S = sum( A , dim ) returns the sum along dimension dim . For example, if A is a matrix, then sum(A,2) is a column vector containing the sum of each row.

S = sum( A , vecdim ) sums the elements of A based on the dimensions specified in the vector vecdim . For example, if A is a matrix, then sum(A,[1 2]) is the sum of all elements in A , since every element of a matrix is contained in the array slice defined by dimensions 1 and 2.

S = sum( ___ , outtype ) returns the sum with a specified data type, using any of the input arguments in the previous syntaxes. outtype can be ‘default’ , ‘double’ , or ‘native’ .

S = sum( ___ , nanflag ) specifies whether to include or omit NaN values from the calculation for any of the previous syntaxes. sum(A,’includenan’) includes all NaN values in the calculation while sum(A,’omitnan’) ignores them.

Examples

Sum of Vector Elements

Create a vector and compute the sum of its elements.

Sum of Matrix Columns

Create a matrix and compute the sum of the elements in each column.

Sum of Matrix Rows

Create a matrix and compute the sum of the elements in each row.

Sum of Array Slices

Use a vector dimension argument to operate on specific slices of an array.

Create a 3-D array whose elements are 1.

To sum all elements in each page of A , specify the dimensions in which to sum (row and column) using a vector dimension argument. Since both pages are a 4-by-3 matrix of ones, the sum of each page is 12.

If you slice A along the first dimension, you can sum the elements of the resulting 4 pages, which are each 3-by-2 matrices.

Slicing along the second dimension, each page sum is over a 4-by-2 matrix.

Starting in R2018b, to sum over all dimensions of an array, you can either specify each dimension in the vector dimension argument, or use the ‘all’ option.

Sum of 3-D Array

Create a 4-by-2-by-3 array of ones and compute the sum along the third dimension.

Sum of 32-bit Integers

Create a vector of 32-bit integers and compute the int32 sum of its elements by specifying the output type as native .

Sum Excluding NaN

Create a vector and compute its sum, excluding NaN values.

If you do not specify ‘omitnan’ , then sum(A) returns NaN .

Input Arguments

A — Input array
vector | matrix | multidimensional array

Input array, specified as a vector, matrix, or multidimensional array.

If A is a scalar, then sum(A) returns A .

If A is an empty 0-by-0 matrix, then sum(A) returns 0 .

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | duration
Complex Number Support: Yes

dim — Dimension to operate along
positive integer scalar

Dimension to operate along, specified as a positive integer scalar. If no value is specified, then the default is the first array dimension whose size does not equal 1.

Dimension dim indicates the dimension whose length reduces to 1. The size(S,dim) is 1 , while the sizes of all other dimensions remain the same.

Consider a two-dimensional input array, A :

sum(A,1) operates on successive elements in the columns of A and returns a row vector of the sums of each column.

sum(A,2) operates on successive elements in the rows of A and returns a column vector of the sums of each row.

sum returns A when dim is greater than ndims(A) or when size(A,dim) is 1 .

Data Types: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

vecdim — Vector of dimensions
vector of positive integers

Vector of dimensions, specified as a vector of positive integers. Each element represents a dimension of the input array. The lengths of the output in the specified operating dimensions are 1, while the others remain the same.

Consider a 2-by-3-by-3 input array, A . Then sum(A,[1 2]) returns a 1-by-1-by-3 array whose elements are the sums of each page of A .

Data Types: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

outtype — Output data type
‘default’ (default) | ‘double’ | ‘native’

Output data type, specified as ‘default’ , ‘double’ , or ‘native’ . These options also specify the data type in which the operation is performed.

Data Types: char

nanflag — NaN condition
‘ includenan ’ (default) | ‘ omitnan ’

NaN condition, specified as one of these values:

‘includenan’ — Include NaN values when computing the sum, resulting in NaN .

‘omitnan’ — Ignore all NaN values in the input.

Data Types: char

Extended Capabilities

Tall Arrays
Calculate with arrays that have more rows than fit in memory.

This function fully supports tall arrays. For more information, see Tall Arrays.

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Usage notes and limitations:

If you specify dim , then it must be a constant.

The outtype and nanflag options must be constant character vectors.

GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

Usage notes and limitations:

If you specify dim , then it must be a constant.

The outtype and nanflag options must be constant character vectors.

GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.

Usage notes and limitations:

The order of the additions in the sum operation is not defined. Therefore, the sum operation on a GPU array might not return exactly the same answer as the sum operation on the corresponding MATLAB numeric array. The difference might be significant when A is a signed integer type and its product is accumulated natively.

For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).

Distributed Arrays
Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.

Usage notes and limitations:

The order of the additions in sum operation is not defined. Therefore, the sum operation on a distributed array might not return exactly the same answer as the sum operation on the corresponding MATLAB numeric array. The difference might be significant when A is a signed integer type and its product is accumulated natively.

For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).

Ссылка на основную публикацию
Adblock
detector