[matlab]符号表达式中的系数提取问题

今天遇到一个问题:

expr = x*y*z

如何将y*z作为一个整体,然后求出其的系数x

首先映入眼帘的是matlab中的coeffs函数

但是使用

coeffs(expr,y*z);

结果 Error了,貌似是不能输入表达式做为第二个参数

然后我就想能不能将 y*z这个表达式替换成一个变量比如n

就使用subs

subs(expr,y*z,n);

结果倒是没出错,但是返回的是 x*y*z,

继续测试

subs(expr,y,n);

以及

subs(expr,x*y*z,n);

返回结果都是对的,唉

目前以我的水平,要做也可以,有两种办法

1.将expr转换为str,然后提取各项,匹配

2.具体分析这个问题,取巧

http://zhidao.baidu.com/question/246232648.html

这个知道答案太针对问题了,没有普适性。

3.利用表达式除法


今天想到一个方法,连用两个coeff!

今天在实现的过程中发现不好用,因为比如要要提取expr = x^5*y+x*5 的系数,先用一次[c,t]=coeffs(expr,x)这时可以得到的c是有两个个元素,还需要判断哪一个是x^5*y那一项,赋给expr,然后再使用coeffs(expr,y),这是很麻烦的。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值