用matlab神经网络工具箱构建RBF神经网络,跪求源程序! 20

快来下啊
推荐于2018-05-07
知道答主
回答量:8
采纳率:100%
帮助的人:2.9万
展开全部
希望对您有用
clc
clear
close all

%---------------------------------------------------
% 产生训练样本与测试样本,每一列为一个样本

P1 = [rand(3,5),rand(3,5)+1,rand(3,5)+2];
T1 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)];

P2 = [rand(3,5),rand(3,5)+1,rand(3,5)+2];
T2 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)];

%---------------------------------------------------
% 归一化

[PN1,minp,maxp] = premnmx(P1);
PN2 = tramnmx(P2,minp,maxp);

%---------------------------------------------------
% 训练

switch 2
case 1

% 神经元数是训练样本个数
spread = 1; % 此值越大,覆盖的函数值就大(默认为1)
net = newrbe(PN1,T1,spread);

case 2

% 神经元数逐步增加,最多就是训练样本个数
goal = 1e-4; % 训练误差的平方和(默认为0)
spread = 1; % 此值越大,需要的神经元就越少(默认为1)
MN = size(PN1,2); % 最大神经元数(默认为训练样本个数)
DF = 1; % 显示间隔(默认为25)
net = newrb(PN1,T1,goal,spread,MN,DF);

case 3

spread = 1; % 此值越大,需要的神经元就越少(默认为1)
net = newgrnn(PN1,T1,spread);

end

%---------------------------------------------------
% 测试

Y1 = sim(net,PN1); % 训练样本实际输出
Y2 = sim(net,PN2); % 测试样本实际输出

Y1 = full(compet(Y1)); % 竞争输出
Y2 = full(compet(Y2));

%---------------------------------------------------
% 结果统计

Result = ~sum(abs(T1-Y1)) % 正确分类显示为1
Percent1 = sum(Result)/length(Result) % 训练样本正确分类率

Result = ~sum(abs(T2-Y2)) % 正确分类显示为1
Percent2 = sum(Result)/length(Result) % 测试样本正确分类率
aneylinwuhui
2011-05-20
知道答主
回答量:10
采纳率:0%
帮助的人:6.6万
展开全部
你干什么用啊
是模式分类?
要是得话我有源码不过是用 matlab 工具箱写的要吗
更多追问追答
追问
谢谢你了!不是,用四元十字阵做被动声定位算法设计,现在是用matlab神经网络工具箱构建RBF神经网络然后仿真显示图形的哪个程序!
追答
你自己参考参考啊

clc
clear all
close all

%---------------------------------------------------
% 产生训练样本与测试样本,每一列为一个样本

n1 = [rand(3,5),rand(3,5)+1,rand(3,5)+2];
x1 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)];

n2 = [rand(3,5),rand(3,5)+1,rand(3,5)+2];
x2 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)]

xn_train = n1; % 训练样本
dn_train = x1; % 训练目标

xn_test = n2; % 测试样本
dn_test = x2; % 测试目标

%---------------------------------------------------
% 训练与测试

switch 3
case 1

% 神经元数是训练样本个数
P = xn_train;
T = dn_train;
spread = 40; % 此值越大,覆盖的函数值就大(默认为1)
net = newrbe(P,T,spread);

case 2

% 神经元数逐步增加,最多就是训练样本个数
P = xn_train;
T = dn_train;
goal = 1e-8; % 训练误差的平方和(默认为0)
spread = 40; % 此值越大,需要的神经元就越少(默认为1)
MN = size(xn_train,2); % 最大神经元数(默认为训练样本个数)
DF = 1; % 显示间隔(默认为25)
net = newrb(P,T,goal,spread,MN,DF);

case 3

P = xn_train;
T = dn_train;
spread = 0.5; % 此值越大,需要的神经元就越少(默认为1)
net = newgrnn(P,T,spread);

end

X = sim(net,xn_test); % 测试 - 输出为预测值
X = full(compet(X)) % 竞争输出

%---------------------------------------------------
% 结果统计

Result = ~sum(abs(X-x2)) % 正确分类显示为1
Percent = sum(Result)/length(Result) % 正确分类率
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式