フィルターのクリア

Symbolic summation within a for-loop

2 ビュー (過去 30 日間)
Robert Mason
Robert Mason 2016 年 7 月 22 日
回答済み: Azzi Abdelmalek 2016 年 7 月 22 日
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 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2016 年 7 月 22 日
How f is defined?

サインインしてコメントする。

採用された回答

Walter Roberson
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.

その他の回答 (1 件)

Azzi Abdelmalek
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;

カテゴリ

Help Center および File ExchangeMathematics についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by