symbolic expression to function
1 回表示 (過去 30 日間)
古いコメントを表示
The following code is to obtain a formula of calculating the determinant of the symmetric matrix.
function [ yy ] = detF( xdm )
ni = (1 + xdm) * xdm /2;
xx = sym('xx', [ni,1]);
xM = sym('xM', [xdm,xdm]);
for i = 1:xdm
ia = i * (i-1) /2 +1;
ib = i + ia - 1;
xM(i, 1:i) = xx(ia : ib);
end
for j = 1:xdm-1
for k = j+1:xdm
xM(j,k) = xM(k,j);
end
end
y = det(xM);
yy = symfun(y,xx);
end
xdm is the demension of the matrix. You can test the code by 'detF(2)'. The code returns something like
yy(xx1, xx2, xx3) = - xx2^2 + xx1*xx3
However, the argument of the symfun is 3 elements, what I need is a vector input like yy(x) = -x(2)^2 + x(1)*x(3)
Any suggestion? Thank you in advance.
Qun
0 件のコメント
回答 (1 件)
Walter Roberson
2017 年 7 月 16 日
Use matlabFunction with the 'vars' option and pass {xx} as the value of the option, or possibly the transpose of that depending if you want row vectors or column vectors. To emphasize, for this situation you need to pass a cell array that contains a symbolic vector
2 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!