m0_59759448 2021-11-11 18:20 采纳率: 100%
浏览 275
已结题

matlab串联矩阵维数不一致。

img

变量- ARIMA Forcas
       Forcast
6x1double

img

变量-ARIMA Predict
 ARMA Predict
36x1double

代码如下:
r=[14.94 14.22 12.19 10.78 10.53 11.25 11.95 13.71 14.43 14.61 13.62 13.76 12.93 12.22 12.92 12.94 12.84 12.10 14.94 17.33 21.02 29.43 30.78 31.40 33.19 35.13 34.60 32.82 28.65 31.54 36.17 37.87 36.07 31.42 30.48 33.57];

tr=r';
data=tr;
step=6;
TempData=data;
output=data;
TempData=detrend(TempData);
TrendData=data-TempData;
[H,PValue,TestStat,CriticalValue]=adftest(TempData);
difftime=0;
SaveDiffData=[];
whileH
SaveDiffData=[SaveDiffData,TempData(1,1)];
TempData=diff(TempData); difftime=difftime+1;
[H,PValue,TestStat,CriticalValue]=adftest(TempData);
end
test=[];
for p=0:5
for q=0:5
if(p+q
=0)
m=armax(TempData,[p q]);
AIC=aic(m);
test=[test;p q AIC];
end
end
end
for k=1:size(test,1)
if test(k,3)==min(test(:,3))
p_test=test(k,1);
q_test=test(k,2);
break;
end
end
m=armax(TempData,[p_test q_test]);
ARIMA_Predict=predict(m,TempData,step);
ARIMA_Forcast=forecast(m,TempData,step);
PreR=[ARIMA_Predict 'ARIMA_Forcast'];错误使用 horzcat要串联的数组的维度不一致。

  • 写回答

1条回答 默认 最新

  • 技术专家团-Joel 2021-11-11 19:06
    关注

    你好同学,你粘贴代码的最后一句改成:

    PreR=[ARIMA_Predict; ARIMA_Forcast];
    

    即可,因为'ARIMA_Forcast'是个字符串,不是原来的ARIMA_Forcast变量,而ARIMA_Forcast和ARIMA_Predict都是1列若干行,所以中间用分号就能合并
    如有帮助,还望题主给个宝贵的采纳支持一下答主答题哟,谢谢啦

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月20日
  • 已采纳回答 11月12日
  • 创建了问题 11月11日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵