[matlab]符号表达式中的系数提取问题
今天遇到⼀个问题:
expr = x*y*z
如何将y*z作为⼀个整体,然后求出其的系数x
⾸先映⼊眼帘的是matlab中的coeffs函数
但是使⽤
coeffs(expr,y*z);
结果 Error了,貌似是不能输⼊表达式做为第⼆个参数
然后我就想能不能将 y*z这个表达式替换成⼀个变量⽐如n
matlab定义函数表达式就使⽤subs
subs(expr,y*z,n);
结果倒是没出错,但是返回的是 x*y*z,
继续测试
subs(expr,y,n);
以及
subs(expr,x*y*z,n);
返回结果都是对的,唉
⽬前以我的⽔平,要做也可以,有两种办法
1.将expr转换为str,然后提取各项,匹配
2.具体分析这个问题,取巧
这个知道答案太针对问题了,没有普适性。
3.利⽤表达式除法
今天想到⼀个⽅法,连⽤两个coeff!
今天在实现的过程中发现不好⽤,因为⽐如要要提取expr = x^5*y+x*5 的系数,先⽤⼀次[c,t]=coeffs(expr,x)这时可以得到的c是有两个个元素,还需要判断哪⼀个是x^5*y那⼀项,赋给expr,然后再使⽤coeffs(expr,y),这是很⿇烦的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论