电子产业一站式赋能平台

PCB联盟网

搜索
查看: 1397|回复: 1
收起左侧

求助:solve自动忽略多余自变量。

[复制链接]

578

主题

936

帖子

4943

积分

四级会员

Rank: 4

积分
4943
发表于 2022-8-31 12:39:10 | 显示全部楼层 |阅读模式
syms x y z
[x,z,y]=solve(x+y==1,x-y==2,x,z,y);
if isempty(z)
z=0
end
double(x)
double(z)
double(y)


会报错:

警告: 2 equations in 3 variables. New variables might be introduced.
> In D:\Program Files\MATLAB\R2014a\toolbox\symbolic\symbolic\symengine.p>symengine at 56
  In mupadengine.mupadengine>mupadengine.evalin at 97
  In mupadengine.mupadengine>mupadengine.feval at 150
  In solve at 170
警告: The solutions are parametrized by the symbols:
z1 = C_

> In solve at 190


ans =


    1.5000


错误使用 mupadmex
Error in MuPAD command: DOUBLE cannot convert the input expression into a double array.
If the input expression contains a symbolic variable, use the VPA function instead.


出错 sym/double (line 514)
        Xstr = mupadmex('symobj::double', S.s, 0);
回复

使用道具 举报

578

主题

858

帖子

4821

积分

四级会员

Rank: 4

积分
4821
发表于 2022-8-31 12:39:29 | 显示全部楼层
是因为在for循环中,某些循环会正好消掉某个自变量。所以有此一问。
上面的函数是类比。z如果正好消掉,把z赋值成0.
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表