Matlab使用inline调用变量存储的方程时coeffs函数报错如何解决
报错原因
coeffs是Matlab符号数学工具箱专属函数,仅支持符号表达式、符号多项式类型的输入参数- 你通过
inline()把输入的方程字符串转为了数值函数对象,该类型不属于coeffs的合法输入范围,因此触发数据类型不匹配报错
解决方案
不需要做inline转换,直接将输入的字符串方程转为符号表达式即可,修正后代码如下:
syms x; eq = input('Enter Equation Of Divisor: ','s'); % 将字符串转为符号表达式即可,无需转inline p = str2sym(eq); % 低版本Matlab可替换为 p = sym(eq); c = coeffs(p); disp(c);
效果验证
输入x-4时,输出结果为[-4,1],符合预期。
补充说明
- 若需要调整系数输出顺序、指定提取系数的对应变量,可以给
coeffs补充参数,例如按x的降幂输出可写为coeffs(p, x, 'All') - 输入的方程中仅允许出现提前声明过的符号变量(此处为x),不可包含其他未定义字符
内容的提问来源于stack exchange,提问作者shakaib naqvi
相关产品推荐
相关产品推荐

