how can i sum over to variable in matlab?
9 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi, i have a function as below in a for loop:
for i=1:20

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 Commenti
Guillaume
il 19 Gen 2017
And can these function operate on matrices, or do they only accept scalars?
Risposte (2)
Jorge Mario Guerra González
il 19 Gen 2017
Modificato: Jorge Mario Guerra González
il 19 Gen 2017
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 Commenti
Jorge Mario Guerra González
il 19 Gen 2017
@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
il 19 Gen 2017
Modificato: Guillaume
il 19 Gen 2017
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 Commenti
Vedere anche
Categorie
Scopri di più su Quantum Mechanics in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!