Symbolic summation within a for-loop
2 ビュー (過去 30 日間)
古いコメントを表示
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?
採用された回答
Walter Roberson
2016 年 7 月 22 日
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.
0 件のコメント
その他の回答 (1 件)
Azzi Abdelmalek
2016 年 7 月 22 日
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;
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!