Effacer les filtres
Effacer les filtres

Symbolic summation within a for-loop

2 vues (au cours des 30 derniers jours)
Robert Mason
Robert Mason le 22 Juil 2016
I have a function that is dependent on two variables, f(j, k). I would like to create a loop that, for each j, sums the function for each value of k. I have tried the code:
for j=1:10;
g(j)=symsum(f(j,k), k, 1, 10);
end;
However, I get an error message "Undefined function 'symsum' for input arguments of type 'double'." on running the code. What is the best way to do the above in MATLAB?
  1 commentaire
Azzi Abdelmalek
Azzi Abdelmalek le 22 Juil 2016
How f is defined?

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 22 Juil 2016
symsum cannot use the summation variable to index.
If f is not vectorized then you use
sum( arrayfun(@(k) f(j, k), 1:10) )
If f is vectorized you might be able to use
sum( f(j, 1:10) )
but you might need
sum( f(repmat(j,1,10), 1:10) )
depending on how f is coded.

Plus de réponses (1)

Azzi Abdelmalek
Azzi Abdelmalek le 22 Juil 2016
Look at this example
syms f j k
f=j*sin(k)
for jj=1:10;
ff(k)=subs(f,j,jj);
s=symsum(ff(k), k, 1, 10);
g(jj)=double(s)
end;

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by