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

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 有人能看一下我宿舍管理系统的报修功能该怎么改啊?链表那里总是越界
  • ¥15 cs loadimage运行不了,easyx也下了,没有用
  • ¥15 r包runway详细安装教程
  • ¥15 Html中读取Json文件中数据并制作表格
  • ¥15 谁有RH342练习环境
  • ¥15 STM32F407 DMA中断问题
  • ¥15 uniapp连接阿里云无法发布消息和订阅
  • ¥25 麦当劳点餐系统代码纠错
  • ¥15 轮班监督委员会问题。
  • ¥20 关于变压器的具体案例分析