我是靠谱客的博主 鲤鱼战斗机,最近开发中收集的这篇文章主要介绍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。

全部

最后

以上就是鲤鱼战斗机为你收集整理的matlab中sig怎么用,Simulink中用什么模块表示?的全部内容,希望文章能够帮你解决matlab中sig怎么用,Simulink中用什么模块表示?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部