newrb建立径向基网络时的错误
clear all;clc;
N=1000;
n=15;
nonrandbit=1;
randbit=1;
t=linspace(0,2*pi,n);
tt=linspace(0,2*pi,N);
r=nonrandbit+randbit*rand(size(t));
%r=nonrandbit+randbit*ones(size(t));
r(end)=r(1);
rr=spline(t,,tt);
x=rr.*cos(tt);
y=rr.*sin(tt);
=newrb(x,y,0.1,0.8,8000);
plot(x,y,'g-');
hold on;
simValue=sim(net,x);
plot(x,simValue,'r*');
%newrb(x,y,0.1,0.8,8000);建立的神经网络默认的经先进神经原的数目等于输入向量的列数目,就是1000,但是循环迭代达到最大径向基原数目时,网络不能很好地逼近目标函数。我想把神经原数目改大一点,改成mn=8000,可是网络训练达到1000之后就报错,请问各位达人,径向基网络建立函数newrb(x,y,0.1,0.8,8000);对于mn,就是最大径向基原数目有什么具体的要求吗?谢谢! 有高手会吗?小妹在此谢过 N要大于或者等于8000 可是2000就报错了呀 原帖由 waterlife 于 2007-4-15 20:18 发表
可是2000就报错了呀
happy不是跟你说要 >= 8000吗?2000 < 8000...... 楼主所编的是RBF应用于故障辨识的程序吗?我现在急需一个。楼主能帮忙解答下吗?谢谢拉:handshake 不是,我就是用于非线性逼近。 我把mn改成了10000,还是在仿真到1000就报错:'( 郁闷了 出错信息如下:
??? Index exceeds matrix dimensions.
Error in ==> E:\MATLAB\toolbox\nnet\nnet\newrb.m (findLargeColumn)
On line 233==> i = i(1);
Error in ==> E:\MATLAB\toolbox\nnet\nnet\newrb.m (designrb)
On line 190==> pick = findLargeColumn(e);
Error in ==> E:\MATLAB\toolbox\nnet\nnet\newrb.m
On line 130==> = designrb(p,t,goal,spread,mn,df);
Error in ==> E:\Simulink\myapp.m
On line 15==> net=newrb(x,y,0.1,0.8,10000); 对于newrb函数,RBF网络的隐含层节点数最多只能是训练样本的个数,要想增加隐含层节点个数,必须先增加样本,但训练时间也随之增加 注意: 一般情形下, mn<=N.
另外,散布常数spread的选择很重要,你再检查一下看看其值是否合适.
页:
[1]