matlab中显示"索引超出矩阵维度"怎么解决
x = 1:1:18 %铁元素含量18组历史数据y = [5 4.4 5.8 6.4 3.1 1.8 5.9 2.9 8.8 8.9 5.9 2.6 1.7 6.1 3.2 0.7 2.4 2.2] x1 = linspace(1,18,100)y1 = spline(x,y,x1)plot(x,y,✀*✀,x1,y1,✀b✀)xlabel(✀取样次数✀)ylabel(✀铁元素含量✀) %%声明全局变量global p %训练集输入数据global t %训练集输出数据global R %输入神经元个数global S1 %输出神经元个数global S2 %隐层神经元个数global S %编码长度%%导入数据S1 = 10%输入和输出样本for i = 1:75 P(i,1:10)=y1(i:i+9)endt=p(2:75,10)%数据归一化[pn,minp,maxp,tn,mint,maxt]=premnmx(p,✀t✀);%测试数据for j=1:15 k(j,1:10)=y1(j+75:j+84)end%数据归一化[kn,mink,maxk,en,mine,maxe]=premnmx(k,✀e✀);%%BP神经网络%网络创建net=newff(minmax(pn),[10,1],{✀tansig✀,✀purelin✀},✀trainlm✀);net.layers{1},initFcn = ✀initwb✀;net.layers{2},initFcn = ✀initwb✀;net,inputWeights{1,1}.initFcn = ✀rands✀; %输入层权值net,inputWeights{2,1}.initFcn = ✀rands✀; %当前网络层权值net,biases{1,1}.initFcn = ✀rands✀; %输入层权值net,biases{2,1}.initFcn = ✀rands✀; %当前网络层阈值%设置训练参数net.trainParam.show = 100;net.trainParam.lr = 0.1;net.trainParam.mc = 0.9;net.trainParam.epochs = 10000;net.trainParam.goal = 1e-3;%网络训练net=init(net);net=train(net,pn,tn)%仿真测试s_bp=sim(net,kn)out1=postmnmx(s_bp,mine,maxe) %BP神经网络的仿真结果%bp算法预测值和真实值的比较figure(1)x=1:1:15y=[1.1678 0.7618 0.7122 0.7339 0.9089 1.1972 1.5581 1.9512 2.3360 2.6719 2.9184 3.0350 2.9811 2.7163 2.2000;]x1 = linspace(1,15,100)y1 = spline(x,y,x1)y2 = spline(x,out1,x1)plot(x,y,✀*✀,x1,y1,✀k✀,out1,✀p✀,x1,y2,✀r✀)gridtitle(✀bp算法预测值和真实值比较✀)xlabel(✀测试次数✀)ylabel(✀铁元素含量/ppm✀)legend(✀实际值✀,✀line1✀,✀预测值✀,✀line2✀)%计算bp算法的相对误差以及未来预测a=abs(out1-e✀)for i=1:15 a1(i,1)=a(1,i)/e(i,1)enda2=sum(a1)/15q={1.1972 1.5581 1.9512 2.3360 2.6719 2.9184 3.0350 2.9811 2.7163 2.2000;} [qn,mineq,maxq]=premnmx(q✀);w=sim(net,qn)w_bp=postmnmx(w,mine,maxe)结果显示“索引超出矩阵维度。”求大神帮忙解决一下