如何利用MATLAB';s命令“;预测;?

如何利用MATLAB';s命令“;预测;?,matlab,prediction,forecasting,forecast,Matlab,Prediction,Forecasting,Forecast,我有一个地区2017年的用电量数据。所以我要矩阵1x1,一个是月份,另一个是消耗量。我想使用命令forecast来预测2018年第一个月的消费量,但即使在阅读了MATLAB帮助页面上的示例后,我也不知道如何做到这一点 示例: data = {1166974.25000000, 1132479.36000000, 1137173.86000000, 1145853.58000000, 1118875.72000000, 1071456.85000000 ,1047171.87000000, 107

我有一个地区2017年的用电量数据。所以我要矩阵1x1,一个是月份,另一个是消耗量。我想使用命令
forecast
来预测2018年第一个月的消费量,但即使在阅读了MATLAB帮助页面上的示例后,我也不知道如何做到这一点

示例:

data = {1166974.25000000, 1132479.36000000, 1137173.86000000, 1145853.58000000, 1118875.72000000, 1071456.85000000 ,1047171.87000000, 1071179.65000000 ,1077986.32000000 ,1112111.10000000, 1149668.47000000 ,1161649.19000000, 1175576.25000000 ,1126753.31000000 ,1204843.11000000 ,1183946.03000000, 1153080.36000000, 1120182.07000000, 1104726.03000000 ,1108110.02000000 ,1137729.28000000 ,1189699.45000000, 1252975.55000000, 1218118.20000000 ,1259580 ,1208193 ,1194430, 1244458, 1218867, 1205705 ,1177362, 1185584, 1164758, 1226991 ,1286044 ,1305312, 1360681.70000000 ,1332020 ,1306497.90000000 ,1299819.10000000 ,1316167.70000000 ,1246959.40000000 ,1256700.20000000 ,1266490.60000000, 1275642.90000000, 1358839.80000000, 1361440.10000000, 1398059.40000000};
data = [data{:}];
sys = ar(data,4)
K = 49;
p = forecast(sys,data,K);
plot(data,'b',p,'r'), legend('measured','forecasted')

为什么这样不行?

我希望你能找到解决问题的办法。如果你没有,也许我可以帮你

MathWork的函数文档指出,“PastData”条目(代码中标记为“data”)可以是iddata对象,也可以是N x N_y双精度矩阵。您的实现使用了一个矩阵,所以我决定用一个iddata对象来测试代码

rawdat = [1166974.25000000, 1132479.36000000, 1137173.86000000, 1145853.58000000, 1118875.72000000, 1071456.85000000 ,1047171.87000000, 1071179.65000000 ,1077986.32000000 ,1112111.10000000, 1149668.47000000 ,1161649.19000000, 1175576.25000000 ,1126753.31000000 ,1204843.11000000 ,1183946.03000000, 1153080.36000000, 1120182.07000000, 1104726.03000000 ,1108110.02000000 ,1137729.28000000 ,1189699.45000000, 1252975.55000000, 1218118.20000000 ,1259580 ,1208193 ,1194430, 1244458, 1218867, 1205705 ,1177362, 1185584, 1164758, 1226991 ,1286044 ,1305312, 1360681.70000000 ,1332020 ,1306497.90000000 ,1299819.10000000 ,1316167.70000000 ,1246959.40000000 ,1256700.20000000 ,1266490.60000000, 1275642.90000000, 1358839.80000000, 1361440.10000000, 1398059.40000000];
data = iddata(rawdat',[]);
sys = ar(data,4);
K = 49;
p = forecast(sys,data,K);
plot(data,'b',p,'r'), legend('measured','forecasted')
注意,我还更改了初始数据的变量名和类型

上面的代码导致下图。


请告诉我们最新情况。谢谢。

谢谢你的回答。我还在努力,但你真的帮了我。你知道我如何使用变量数组而不是手动键入数据吗?因为我试过几次,它总是显示一条错误消息。@SrnLord您能举例说明变量数组的含义吗?