how can i sum over to variable in matlab?
조회 수: 28 (최근 30일)
이전 댓글 표시
Hi, i have a function as below in a for loop:
for i=1:20
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/159970/image.gif)
end;
i'm trying to sum over variables N,N', as simple as it looks, it confused me? can any one help?
thanyou so much in advance
댓글 수: 4
답변 (2개)
Jorge Mario Guerra González
2017년 1월 19일
편집: Jorge Mario Guerra González
2017년 1월 19일
you mean something like this....
I'm supposing F,K,G are random arrays,
are N and N' independent values??? because the notation N, N' is a little tricky for me.
F=rand(20,20);
G=rand(1,20);
K=rand(1,20);
suma=0;
for i=1:20
for j=1:20
suma=suma+F(i,j)*G(i)*K(j);
end
end
disp(suma);
%where i and j are your N and N'
댓글 수: 5
Jorge Mario Guerra González
2017년 1월 19일
@Joseph you should've specified that N=N'-1 in the question. So, since N=N'-1 the range of N is 0:19?. why does the equation you posted say N=1:20.
Guillaume
2017년 1월 19일
편집: Guillaume
2017년 1월 19일
Without any a priori knowledge of F, G, K, this is guaranteed to work:
[NN1, NN2] = ndgrid(0:19, 1:20); %all combinations of N and N'
FN = arrayfun(@F, NN1, NN2);
GN = arrayfun(@G, NN1);
KN = arrayfun(@K, NN2);
result = sum(sum(FN .* GN .* KN)); %or sum(FN(:) .* GN(:) .* KN(:)) which is probably faster but more cryptic.
If the F, G, K functions support implicit expansion or can work directly with vectors and matrices then the arrayfun lines would not even be needed.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Quantum Mechanics에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!