Indexing inside symbolic product

20 ビュー (過去 30 日間)
Aaron J. Hendrickson
Aaron J. Hendrickson 2017 年 7 月 25 日
I am trying to compute a symbolic product with the following code:
syms z theta_1 theta_2 k real
n = 2;
x = sym('x', [n 1])
assumeAlso(theta_2>0)
f = symfun(exp(-(z-theta_1)^2/(2*theta_2))/sqrt(2*pi*theta_2),[z, theta_1, theta_2])
L = symprod(f(x(k),theta_1,theta_2),k,1,n)
However, when I run the code I get the following error:
Error using sym/subsindex (line 766)
Invalid indexing or function definition. When defining a function, ensure that the arguments are symbolic variables and the body of the function is a SYM expression. When indexing, the input must be numeric, logical, or ':'.
Error in sym/subsref (line 805)
R_tilde = builtin('subsref',L_tilde,Idx);
Could someone please explain what is going wrong here? Been staring at this for way to long.

採用された回答

Walter Roberson
Walter Roberson 2017 年 7 月 25 日
Syms can never be used as indices.
Construct a vector of the individual values (sometimes this is very easy if only happen to use vectorizable operations), and then prod() the vector
  1 件のコメント
Aaron J. Hendrickson
Aaron J. Hendrickson 2017 年 7 月 25 日
That works. Thank you.
L = prod(f(x,theta_1,theta_2))

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

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by