我在使用inline函数的时候出现了一个问题。

来源:百度知道 编辑:UC知道 时间:2024/05/18 08:25:35
我在使用inline函数的时候出现了一个问题。
以下的代码是被matlab允许的:
testFct1 = inline('(X(1)-1)^2 + (X(2)-16)^2 + (X(3)+2)^4 + 5*norm(X(4)) + (X(5)+18)^2 + 10', 'X');
而我的代码
testFct2 = inline(' -1/det(R1)) ', 'X');
其中R1是一个矩阵,内容是R1=T'*T,
而T又是[X(1) 0 0;X(2) X(4) 0;X(3) X(5) X(6)]这样的一个矩阵。
可以说R1也是一个关于X的函数。
请问这样的矩阵能够通过inline函数实现么,如果不行,matlab还有什么函数可以实现这个功能。
非常感谢!
很紧急啊,各位大大麻烦看看

没问题,可以的,用符号算法验证了。

syms X1 X2 X3 X4 X5 X6
T=[X1 0 0;X2 X4 0;X3 X5 X6]
R1=T'*T
testFct2=1/det(R1)

结果:
T =

[ X1, 0, 0]
[ X2, X4, 0]
[ X3, X5, X6]

R1 =

[ conj(X1)*X1+conj(X2)*X2+conj(X3)*X3, conj(X2)*X4+conj(X3)*X5, conj(X3)*X6]
[ conj(X4)*X2+conj(X5)*X3, conj(X4)*X4+conj(X5)*X5, conj(X5)*X6]
[ conj(X6)*X3, conj(X6)*X5, conj(X6)*X6]

testFct2 =

1/conj(X6)/X6/conj(X4)/X4/conj(X1)/X1

现在的问题是符号算法得到的结果不能直接使用在inline函数里面,
因为我的inline函数的自变量是X(1)。。。。X(6);而不是
X1.。。。X6,不知道有没有什么办法可以进行两者之间的转换。