Azzera filtri
Azzera filtri

Sum of subsets /= sum of whole??

1 visualizzazione (ultimi 30 giorni)
Sam
Sam il 14 Nov 2014
Commentato: Sam il 14 Nov 2014
I have a MATfile (attached) containing a 3-dimensional array of size [90 144 120]. The array is called ba_lm3. If I subset the array into two equally-sized halves, the sum of all values in each of those halves is different from if I sum all values in the original array. Take a look:
>> sum(ba_lm3(:))
ans =
46601836
>> sum(sum(sum(ba_lm3(:,73:144,:)))) + sum(sum(sum(ba_lm3(:,1:72,:))))
ans =
46604364
The 2nd (subsetted) dimension of the sub-arrays is indeed 72+72=144:
>> size(ba_lm3(:,73:144,:))
ans =
90 72 120
>> size(ba_lm3(:,1:72,:))
ans =
90 72 120
>> size(ba_lm3)
ans =
90 144 120
And I don't think there should be any overlap.
I have observed this problem on machines running MATLAB r2009b and r2013b, so I think it must either be a problem with my code or the array. Any ideas?
  3 Commenti
Azzi Abdelmalek
Azzi Abdelmalek il 14 Nov 2014
Your problem is not clear
James Tursa
James Tursa il 14 Nov 2014
What is the class of ba_lm3?

Accedi per commentare.

Risposta accettata

Azzi Abdelmalek
Azzi Abdelmalek il 14 Nov 2014
Modificato: Azzi Abdelmalek il 14 Nov 2014
a_lm3 is a single array, if you want to get the same result
ba_lm3=double(ba_lm3);
a=ba_lm3(:,1:72,:);
b=ba_lm3(:,73:144,:);
s1=sum(ba_lm3(:))
s2=sum(a(:))+sum(b(:))

Più risposte (0)

Categorie

Scopri di più su Data Type Identification in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by