Efficient way to sum the components of a matrix

1 次查看(过去 30 天)
I have an array of unknown dimensions. I want to sum the values of this array. I need to do this many times. My current code is:
% Determine the number of dimensions in the array.
m = ndims(x);
% Assign the value of the array to a temporary working array, 'temp'.
temp = x;
% Calculate the total of the working array, 'temp'.
for i = 1:m
temp = sum(temp);
end
I have to do this many many times, and profile viewer is showing the command 'sum' as taking a large portion of time. Is there a more efficient way of doing this, or am I just stuck with this method?
  5 个评论
José-Luis
José-Luis 2014-6-24
By default, it will perform the sum along the first non-singleton dimension.
Joshua
Joshua 2014-6-24
Sorry, I didn't make it very clear. I have an array of unknown dimension and I want to sum up all of the values within that array.
x = [ 0 1 ; 2 3]
code to sum all of the values across all dimensions...
temp = 6

请先登录,再进行评论。

采纳的回答

Joseph Cheng
Joseph Cheng 2014-6-24
if you are just looking for the total sum of the n dimensional array, then you can just do sum(temp(:));

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by