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 Kommentare

José-Luis
José-Luis am 24 Jun. 2014
I don't understand. Are you trying to add values along a particular dimension? With the code you show, you are just calculating the same thing m times.
You can call sum with the dimension along which you wish to sum as its second argument, but as José-Luis says, what you are doing at the moment is unclear.
e.g.
sum( temp, 2 )
to sum along the 2nd dimension
Joseph Cheng
Joseph Cheng am 24 Jun. 2014
Bearbeitet: Joseph Cheng am 24 Jun. 2014
Actually i thought that too jose-luis. However it appears that matlab will do the sum in one dimension each time the sum is called. perhaps it's how they choose to perform sums on single dimensions, (ie the path that chooses to do sum(1x5) and sum(5x1) arrays.)
José-Luis
José-Luis am 24 Jun. 2014
By default, it will perform the sum along the first non-singleton dimension.
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

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Joseph Cheng
Joseph Cheng am 24 Jun. 2014

3 Stimmen

if you are just looking for the total sum of the n dimensional array, then you can just do sum(temp(:));

Weitere Antworten (0)

Kategorien

Mehr zu Data Type Identification finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 24 Jun. 2014

Kommentiert:

am 24 Jun. 2014

Community Treasure Hunt

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

Start Hunting!

Translated by