但不影响解决问题,假设你的被调用的函数是求均值mean函数,代码如下。
x=[3 2 1 3 2]
result = []
for i=1:length(x)
%调用函数
temp=mean(x)
%将函数返回值放到result中
result=[result temp(1)]
%将x的第一个数扔掉。
x(1)=[]
end
运行结果,把每次循环中的result都显示出来了
result =
2.2000
result =
2.20002.0000
result =
2.20002.00002.0000
result =
2.20002.00002.00002.5000
result =
2.20002.00002.00002.50002.0000
奇怪,百度还多这样的功能。其实是一个比较取巧的方法,是从训练数据从新编排入手的,举例来说,你就只有一列数据,例如自然数列,1,2,3,4,5,6,7,你把数列从新编成一个矩阵
1 2 3
2 3 4
3 4 5
4 5 6
5 6 7
矩阵前两列做训练的输入矩阵p,第三列做输出那个t,然后训练网络直到满足你的条件
这样训练后的网络就可以用了,当你想预测第八个数的时候,仿真输入6 7,他就预测第八个数,假设输出是8,想继续预测第九个数,把预测的8和之前的7组成新矩阵,也就是输入7 8,他就会出第九个数,9
至于你要的矩阵是2列,3列,4列就随便了,看你的结果和之前的那几个数相关大的,按需要组矩阵吧
上面也可以用
1 2
2 3
3 4
……
这样的矩阵,第一列p,第二列t,来训练,这样就是一输入一输出了
原理都一样,这是多步预测,误差其实越到后面越大
滚动预测就是把新预测的数再放进数列里面,当作这数列是新的,再做新训练和仿真
其实新编矩阵很简单了,for循环就可以,然后归一化,再训练,最后仿真
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)