Matlab 多项式问题

Matlab 多项式问题,matlab,Matlab,我用MATLAB编写了以下代码: X=[1,1,1,1]; Y=[0,1,1,1] 当我使用下面的指令时,MATLAB给了我一个错误: [p,Q]=deconv(X,Y) 错误消息是: ???在21处使用==>deconv时出错 A的第一个系数必须为非零 为什么会出现此消息? 请帮帮我。 谢谢一般情况下,请尝试以下操作以将左侧的Y微调为零: ind = find(Y~=0, 1, 'first'); [q,r] = deconv(X, Y(ind:end)) 通常,请尝试以下操作以将左侧的微调

我用MATLAB编写了以下代码:

X=[1,1,1,1]; Y=[0,1,1,1]

当我使用下面的指令时,MATLAB给了我一个错误:

[p,Q]=deconv(X,Y)

错误消息是:

???在21处使用==>deconv时出错 A的第一个系数必须为非零

为什么会出现此消息? 请帮帮我。
谢谢

一般情况下,请尝试以下操作以将左侧的
Y
微调为零:

ind = find(Y~=0, 1, 'first');
[q,r] = deconv(X, Y(ind:end))

通常,请尝试以下操作以将左侧的微调
Y
归零:

ind = find(Y~=0, 1, 'first');
[q,r] = deconv(X, Y(ind:end))

我认为出现该消息是因为
Y
的第一个元素为零。只需删除第一个元素。这就像说你有一个二次的
0x^2+2x+3
,它根本不是一个二次的。我怎么能去掉Y的第一个元素呢?不知道,我很少使用Matlab。可能会说
Y(1)=[]
,这是该网站的建议。但是,如果这是一个一般性问题,您应该编写一些一般性的解决方案来删减前导的零。我认为出现此消息是因为
Y
的第一个元素是零。只需删除第一个元素。这就像说你有一个二次的
0x^2+2x+3
,它根本不是一个二次的。我怎么能去掉Y的第一个元素呢?不知道,我很少使用Matlab。可能会说
Y(1)=[]
,这是该网站的建议。但如果这是一个一般性问题,您应该编写一些通用的解决方案来修剪前导零。