waterlife 发表于 2007-4-14 09:39

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,就是最大径向基原数目有什么具体的要求吗?谢谢!

waterlife 发表于 2007-4-14 18:32

有高手会吗?小妹在此谢过

happy 发表于 2007-4-14 20:23

N要大于或者等于8000

waterlife 发表于 2007-4-15 20:18

可是2000就报错了呀

eight 发表于 2007-4-15 20:56

原帖由 waterlife 于 2007-4-15 20:18 发表
可是2000就报错了呀


happy不是跟你说要 >= 8000吗?2000 < 8000......

piggybaby 发表于 2007-4-16 12:39

楼主所编的是RBF应用于故障辨识的程序吗?我现在急需一个。楼主能帮忙解答下吗?谢谢拉:handshake

waterlife 发表于 2007-4-16 19:48

不是,我就是用于非线性逼近。

waterlife 发表于 2007-4-16 20:42

我把mn改成了10000,还是在仿真到1000就报错:'( 郁闷了

waterlife 发表于 2007-4-16 20:56

出错信息如下:
??? 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);

meirongsui 发表于 2007-4-24 19:36

对于newrb函数,RBF网络的隐含层节点数最多只能是训练样本的个数,要想增加隐含层节点个数,必须先增加样本,但训练时间也随之增加

xjzuo 发表于 2007-4-25 09:24

注意: 一般情形下, mn<=N.
另外,散布常数spread的选择很重要,你再检查一下看看其值是否合适.
页: [1]
查看完整版本: newrb建立径向基网络时的错误