矩阵维度不匹配错误

时间:2013-03-24 21:17:21

标签: matlab curve-fitting

我正在尝试对包含200个样本点的矢量数据进行建模。我希望看到“适合度”,阅读后我发现这可以通过预测下一组值来完成(我不是那样的)但是,如果这是正确的方式,我很自信。)我坚持这个,因为下面的代码给出了一个错误,我只是无法解决它。有人请帮助删除错误

Error using  * 
Inner matrix dimensions must agree.

Error in data_predict (line 27)
    ypred(j) = ar_coeff' * y{i}(j-1:-1:j-p);

另外,有人可以告诉我如何做同样的事情,即使用非线性AR建模,移动平均线和ARMA获得系数,因为使用命令nlarx()没有返回任何模型系数? 的 CODE

if ~iscell(y); y = {y}; end
model = ar(y, 2, 'yw');

%prediction
yresiduals=[];
nsegments=length(y);

ar_coeffs = model.a;
ar_coeff=[ar_coeffs(2) ar_coeffs(3)]
for i=1:nsegments
  pred = zeros(length(y{i}),1);
  for j=p+1:length(y{i})
    ypred(j) = ar_coeff(:)' * y{i}(j-1:-1:j-p);
  end
  yresiduals = [yresiduals; y{i}(p+1:end) - ypred(p+1:end)];
end

1 个答案:

答案 0 :(得分:0)

在matlab中,*是两个矩阵之间的矩阵乘积。这意味着第一个矩阵中的列数必须等于第二个矩阵中的行数。您可能打算通过元素乘法使用.*元素。编辑:对于逐元素乘法,矩阵必须大小相同。检查矩阵的大小。如果它们不适合这些条件,则需要改变一些事情。