matlab BP神经网络 sim函数怎么解释呢?

Python029

matlab BP神经网络 sim函数怎么解释呢?,第1张

sim是仿真。net是前面已经训练好的网络,相当于把r'作为自变量代入net中。

刚琢磨神经网络,有不对的地方还请指出

时间序列应当是一排数据对应另一排数据。相当于x对应y。

但是题主一开始的输入P=[a' b' c' d' e'],这是一个5行的矩阵,不是向量,也就不是时间序列了。大约这就是为什么最终输出会成了一个矩阵吧

不能发链接,所以我复制过来了。

#载入程序和数据

library(RSNNS)

data(iris)

#将数据顺序打乱

iris <- iris[sample(1:nrow(iris),length(1:nrow(iris))),1:ncol(iris)]

#定义网络输入

irisValues <- iris[,1:4]

#定义网络输出,并将数据进行格式转换

irisTargets <- decodeClassLabels(iris[,5])

#从中划分出训练样本和检验样本

iris <- splitForTrainingAndTest(irisValues, irisTargets, ratio=0.15)

#数据标准化

iris <- normTrainingAndTestSet(iris)

#利用mlp命令执行前馈反向传播神经网络算法

model <- mlp(iris$inputsTrain, iris$targetsTrain, size=5, learnFunc="Quickprop", learnFuncParams=c(0.1, 2.0, 0.0001, 0.1),maxit=100, inputsTest=iris$inputsTest, targetsTest=iris$targetsTest)

#利用上面建立的模型进行预测

predictions <- predict(model,iris$inputsTest)

#生成混淆矩阵,观察预测精度

confusionMatrix(iris$targetsTest,predictions)

#结果如下:

#predictions

#targets 1 2 3

# 1 8 0 0

# 2 0 4 0

# 3 0 1 10

sim函数用来运行Simulink模型。需要注意的是,用户无法控制其仿真过程(例如暂停、继续),一旦运行就会直到达到结束条件为止——这一点和通过模型窗口界面运行仿真不同。

调用格式:

[t,x,y] = sim(model,timespan,options,ut)

[t,x,y1, y2, ..., yn] = sim(model,timespan,options,ut)

输入参数:

model:模型的名字,用单引号括起来(注意不带扩展名.mdl);

timespan:指定仿真时间范围,可以有几种情况:

标量tFinal,指定仿真结束时间。这种情况下开始时间为0;

两个元素的向量[tStart tFinal],同时指定开始时间和结束时间;

向量[tStart OutputTimes tFinal],除起止时间外,还指定输出时间点(通常输出时间t会包含更多点,这里指定的点相当于附加的点)。

options:指定仿真选项,是一个结构体,该结构体通过simset创建,包括模型求解器、误差控制等都可以通过这个参数指定(不修改模型,但使用和模型对话框里设置的不同选择)。

ut:指定外部输入,对应于根模型的Inport模块。

除第一个输入参数外,其他参数都可以用空矩阵([])来表示模型的默认值。

输出参数:

t:仿真时间向量;

x:状态矩阵,每行对应一个时刻的状态,连续状态在前,离散状态在后;

y:输出矩阵,每行对应一个时刻;每列对应根模型的一个Outport 模块(如果Outport模块的输入是向量,则在y中会占用相应的列数)。

y1, y2, ..., yn:把上面的y分开,每个yi对应一个Outport模块。