symbolic expression to function
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (1)
Walter Roberson
am 16 Jul. 2017
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
Siehe auch
Kategorien
Mehr zu Characters and Strings finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!