matlab中sig怎么用,Simulink中用什么模块表示?

你可以先生成net网络,经训练后即可调用gensim函数。我给你看一个例子吧:

%训练样本集

%输入向量

P=[756。5745 765。3261 762。9077 762。7337 778。0583 768。4183 753。3221 754。

777 869。1892 837。8081 850。121 871。7502 886。9313 896。7662 844。2693 878。671 936。677 953。5296 936。9523 972。7305 969。6961 966。

8402 967。3992 991。9504;

20 20 20 20 45 45 45 45 20 20 20 20 45 45 45 45 20 20 20 20 45 45 45 45];

%目标向量

T=[750 750 750 750 750 750 750 750 850 850 850 850 850 850 850 850 950 950 950 950 950 950 950 950];

%输入向量、目标向量归一化

p=(P-[750;20]*ones(1,24))。

/([950;45]*ones(1,24)-[750;20]*ones(1,24));

t=(T-750)/(950-750);

%创建BP网络:网络含5个隐层和一个输出层

net=newff([0,1;0,1],[5,1],{'tansig','logsig'},'trainlm');

%对网络进行训练

net=train(net,p,t);

%保存网络

save cellnet net

%生成模块

gensim(net,-1)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

首先需要指出的是,newff函数是用来产生新的网络的,使用时输入向量的维数可以是任意的。

下面是我写的几行命令,newff命令中的minmax(X)决定了新生成网络的输入为5维

%输入向量

X=[0 0。5398 0。5325 0。5324;

0 -0。9341 0。9339 -0。9327;

0 -6。4617 0。

8567 0。8850;

0 10。3576 -10。1934 8。9586;

0 10。9531 31。1317 51。2697];

%目标向量

T=[0 10。9630 31。1417 51。2796];

%输入向量、目标向量归一化:你自己补充一下

%创建BP网络:假设网络含5个隐层和一个输出层

net=newff(minmax(X),[5,1],{'tansig','logsig'},'trainlm');

%对网络进行训练

net=train(net,X,T);

%生成模块

gensim(net,-1)

%需要指出的是,上面调用的newff函数的用法是基于MATLABR2007或者早些版本的。

MATLABR2008a上调用时会稍微有所不同。你可以用help看看

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

输入输出都是按行归一化的。每一个输入矩阵中,每一列都是一个训练或测试样本,对列输入没有意义的。

我用的是MATLABR2008版的,你的那段程序在语法上除了归一化不正确导致的一些问题和newff调用警告外好像没有其他的bug。

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值