Hello,
there are answers for implementing a double sum. But what about a 3-fold sum of the type \sum (x_i*y_j*z_k)*M_{i,j,k} for some given vectors x,y,z and Tensor M.
A naiv implementation would be
SUM=0;
for i=1:length(x)
for j=1:length(y)
for k=1:length(z)
SUM = SUM + x(i)*y(j)*z(k)*M(i,j,k);
end
end
end
How to implement this more efficiently in a more compact form?
Thanks for any help!

 채택된 답변

David Goodmanson
David Goodmanson 2017년 1월 22일

0 개 추천

Hello Stephen, Here is one way, although you do make three arrays of the same size as M:
[xx yy zz] = ndgrid(x,y,z);
S = xx.*yy.*zz.*m;
SUM = sum(S(:))

추가 답변 (1개)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2017년 1월 21일

답변:

2017년 1월 23일

Community Treasure Hunt

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

Start Hunting!

Translated by