Sum over a dimension

조회 수: 8 (최근 30일)
JvdS
JvdS 2019년 8월 5일
답변: madhan ravi 2019년 8월 5일
Hi,
I try to sum over the third dimension of a matrix A, say A = ceil(5*rand(4,4,3)).
The third dimension equals variation in time. For t= 0 I want to have A(:,:,1); for t= 1 I want to have A(:,:,1) + A(:,:,2); for t=3 I want to have A(:,:,1) + A(:,:,2) + A(:,:,3).
The code below works, however, I want to do it without for-loops. Can someone help me?
[nr, nc, nd]= size(A)
for i=1:nd
for ii= 1:nr
for jj=1:nc
B(ii,jj,i) = sum(reshape(A(ii,jj,[1:i]),i,1)));
end
end
end

채택된 답변

madhan ravi
madhan ravi 2019년 8월 5일
B = cumsum(A,3)

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by