矩阵尺寸不匹配的错误
问题描述:
我想模拟一个包含200个采样点的矢量数据,表示一个测量。我想看看“合适的好处”,看完后我发现可以通过预测下一组值(我不是有信心但如果这是正确的方式),因为下面的代码。我是停留在此给出了一个错误,我只是无法解决it.Can有人请在消除误差矩阵尺寸不匹配的错误
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
答
在MATLAB中,*
是两个矩阵之间的矩阵积。这意味着第一个矩阵中的列数必须等于第二个矩阵中的行数。您可能打算使用.*
逐元素乘法。编辑:对于逐元素乘法,矩阵必须是相同的大小。检查矩阵的大小。如果它们不符合这些条件中的任何一个,则需要改变。
谢谢你的回复。我用过了。*仍然出现同样的错误! – user1142671 2013-03-25 02:47:47