%粒子群优化多输入多输出BP神经网络代码
warning off
clear
clc
tic
global SamIn SamOut HiddenUnitNum InDim OutDim TrainSamNum
%% 导入训练数据
data = xlsread('data1.xlsx');
[data_m,data_n] = size(data);%获取数据维度
P = 80; %百分之P的数据用于训练,其余测试
Ind = floor(P * data_m / 100);
train_data = data(1:Ind,1:4)';
train_result = data(1:Ind,6)';
test_data = data(Ind+1:end,1:4)';% 利用训练好的网络进行预测
test_result = data(Ind+1:end,6)';
%% 初始化参数
[InDim,TrainSamNum] = size(train_data);% 学习样本数量
[OutDim,TrainSamNum] = size(train_result);
HiddenUnitNum = 8; % 隐含层神经元个数
[SamIn,PS_i] = mapminmax(train_data,0,1); % 原始样本对(输入和输出)初始化
[SamOut,PS_o] = mapminmax(train_result,0,1);
W1 = HiddenUnitNum*InDim; % 初始化输入层与隐含层之间的权值
B1 &