有人解释一下这段代码什么意思吗

解释一下这个训练集是怎么选的吗,如果要改训练和测试集个数要怎么改

img

同学你好,这就是测试集和训练集
循环里面第1行指的是测试集的输入,是input矩阵每3列里面选出第1列【然后拼凑起来】;
循环里面第2行指的是测试集的输出,是output矩阵每3行里面选出第1行【然后拼凑起来】;
循环里面第3行指的是训练集的输入,是input矩阵每3列里面选出第2,3列【然后拼凑起来】;
循环里面第4行指的是训练集的输出,是output矩阵每3行里面选出第2,3行【然后拼凑起来】;
要改变训练和测试个数,你得把训练集和测试集分别按要求拆分,比如可以随机选0.8的量作为训练集。

N_train = floor(19*3*0.8);%我这里是按照0.8的比例,你也可以自己设置训练的个数,比如N_train = 40;
index_train = randperm(19*3, N_train); %随机选
input_train = input(:,index_train);
output_train = output(index_train, :);
input_test = input; 
input_test(:,N_train)=[];%删除train的,剩下就是test的
output_test = output; 
output_test(N_train,:)=[];%删除train的,剩下就是test的

%% 第二步 设置训练数据和预测数据
input_test=[];output_test=[];input_train=[];output_train=[];
for i=1:19
i
input_test=[input_test input(:,3i-2)];
output_test=[output_test output(3
i-2,:)];
input_train=[input_train input(:,3i-1) input(:,3i)];
output_train=[output_train output(3i-1,:) output(3i,:)];
end

% input_test = [input(:,4) input(:,16) input(:,28) input(:,40) input(:,52)];
% output_test =[output(4,:);output(16,:);output(28,:);output(40,:);output(52,:)]';
% input_train = [input(:,1:3) input(:,5:15) input(:,17:27) input(:,29:39) input(:,41:51)];
% output_train =[output(1:3,:);output(5:15,:);output(17:27,:);output(29:39,:);output(41:51,:)]';
%节点个数
% inputnum=2;
hiddennum=3;%隐含层节点数量经验公式p=sqrt(m+n)+a ,故分别取2~13进行试验
% outputnum=1;