clc,clear,close all;
% 异或四点向量
traind = [0,0,1,1;0,1,0,1];
trainl = [0,1,1,0];
% 创建一个前向BP网络 节点为2
net = feedforwardnet(2);
net.divideFcn=''; % **关键,关闭网络内部的训练集与结果错开的功能
%% Train
net = train(net,traind,trainl); % 训练
test_out = sim(net,traind); % 观察结果
%% CSDN收录版本
clear;
%%用matlab工具箱实现异或
p=[0 0 1 1;0 1 0 1];%p为输入
t=[0 1 1 0];%t为理想输出
%隐含层有2个神经元,输出层有1个神经元,隐含层的传输函数为logsig函数
%输出层的传输函数为purelin函数
net=newff(minmax(p),[2,1],{'logsig','purelin'},'trainlm');
net.trainParam.epochs=1000;%训练的最大次数为1000
net.trainParam.goal=0.0001;%训练的精度为0.0001
LP.lr=0.1;%训练的学习率为0.1
net.trainParam.show=20;%显示训练的迭代过程
net=train(net,p,t);%开始训练
out=sim(net,p);%用sim函数仿真验证
结果: