sum every n columns, element by element

18 visualizzazioni (ultimi 30 giorni)
Hello,
I have for example,
m = randi(9, [10, 12]);
otuputRow=1;
for row = 1 : size(m, 2)
theSums(:, otuputRow) = sum(m(:,row:row+2:end),2);
otuputRow = otuputRow + 1;
end
but matlab show this error: Unable to perform assignment because the size of the left side is 3-by-1 and the size of the right side is 10-by-1.
I want sum columns every 3 columns (but element by element), so, the matrix resultant should be of 10x(12/3), this is a example but really the number of steps for sum can change (every 4, or every 5 columns...)
Thanks!!

Risposta accettata

James Tursa
James Tursa il 28 Apr 2020
m = your matrix
n = number of columns to sum
squeeze(sum(reshape(m,size(m,1),n,[]),2))

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by