我正在寻找一个可以执行的命令:
a*b*c -----> +
-a --------> -
a*b -------> +
c*d*e*f*a--> +
其中 a、b、c、d、e 和 f 是 Matlab 中的符号变量。
是否有任何命令可以返回表达式的初始符号?
我正在寻找一个可以执行的命令:
a*b*c -----> +
-a --------> -
a*b -------> +
c*d*e*f*a--> +
其中 a、b、c、d、e 和 f 是 Matlab 中的符号变量。
是否有任何命令可以返回表达式的初始符号?
如果你有 Matlab 2013,你可以这样做:
>> syms a b c
>> children(a*b*c)
ans =
[ a, b, c]
>> children(-a)
ans =
[ a, -1]
>> children(a*b)
ans =
[ a, b]
>> children(-a*-b)
ans =
[ a, b]
>> children(-a*-b*-c)
ans =
[ a, b, c, -1]
您将通过查看返回向量的最后一个元素来获得初始符号。所以测试一下。
如果将变量定义为一个值,结果将如下所示:
>> c = -4;
>> children(-a*-b*-c)
ans =
[ a, b, 4]
最后一个元素上的呼号如果为负则为 -1,为正则为 1。
请注意,可能并不总是有一个数值作为最后一个元素!Sign(a) 将给出 sign(a) 所以你需要假设它在这种情况下是积极的。