Код:
clear
% точность
b=10000;
while b > 4
% число слоев
m=4
% число входов
n=4
% число нейронов на слое m-1
k=3
% число нейронов на слое m-2
v=1
net=network;
net.numInputs=n;
net.numLayers=m;
%матрица связности смещений [m x 1]
C(1:m,1)=0
C(1:m-1,1)=1
net.biasConnect=C;
%матрица связности входов [m x n]
D(1:m,1:n)=0
D(1:1,1:n)=1
net.inputConnect=D;
% матрица связности слоев [m x m]
G(1:m,1)=1
X = diag(G,-1)
X( :, m+1)=[]
X(m+1, :)=[]
net.layerConnect=X;
%матрица связности для выходов [1 x m]
F(1,1:m)=1
F(1,1:m-1)=0
net.outputConnect=F;
%матрица связности для целей [1 x m]
net.targetConnect=F;
%функция инициализации слоя
net.layers{1}.initFcn='initnw';
net.layers{2}.initFcn='initnw';
net.layers{3}.initFcn='initnw';
net.layers{4}.initFcn='initnw';
%функция активации слоя
net.layers{1}.transferFcn='logsig';
net.layers{2}.transferFcn='logsig';
net.layers{3}.transferFcn='logsig';
net.layers{4}.transferFcn='purelin';
%размер слоя
net.layers{4}.size=1;
net.layers{3}.size=v;
net.layers{2}.size=k;
net.layers{1}.size=4;
%определяем будет ли матрица весов к i-му слою
%от j-го слоя изменена в процессе обучения и адаптации.
%устанавливается в 1 или 0, разрешая или запрещая модификацию весов в
%процессе обучения
net.layerWeights{1,2}.learn=1;
net.layerWeights{2,3}.learn=1;
net.layerWeights{3,4}.learn=1;
net.initFcn='initlay';
%критерий средней ошибки
net.performFcn='mse';
%функция обучения
net.trainFcn='trainlm';
%заданое количество циклов обучения
net.trainParam.epochs=1000;
%целевая ошибка обучения
net.trainParam.goal=0.0001;
% матрицы весов связей между слоями
A(1:k,1:n)=0.5
net.LW{2,1}=A;
B(1:v,1:k)=0.5
net.LW{3,2}=B;
V(1:1,1:v)=0.5
net.LW{4,3}=V;
%описатель матрицы весов для входа 1 на слое 1
L(1:m,1)=0
%L(1,1:m-1)=0
net.IW{1,1}=L;
%описатель матрицы весов для входа 2 на слое 1
M(1:m,1)=0.5
net.IW{1,2}=M;
%описатель матрицы весов для входа 3 на слое 1
U(1:m,1)=0.5
net.IW{1,3}=U;
%описатель матрицы весов для входа 4 на слое 1
Q(1:m,1)=0.5
net.IW{1,4}=Q;
%инициализация НС
net=init(net);
%исходные данные
%матрица входных данных (ввод из пакета Excel)
p=[0.795 0.21 0.0017 0.22; ...
0.827 0.16 0.0021 0.22; ...
0.816 0.09 0.0039 0.22; ...
0.849 0.06 0.0061 0.22; ...
0.851 0.04 0.0101 0.22; ...
0.750 0.14 0.0024 0.22; ...
0.743 0.16 0.0099 0.22];
p=p';
%матрица выходных данных (ввод из пакета Excel)
t=[6.27 5.66 3.87 5.42 7.84 2.44 3.87];
%обучение НС
[net, tr]=train(net, p, t);
y=sim(net,p);
y
%матрица для проверки результатов
p1=[k];
p1=p1'
y1=sim(net,p1);
b=y1
end
b
Пишет вот такую ошибку ,не знаю как ее исправить
Error using network/subsasgn>network_subsasgn (line 551)
net.IW{1,1} must be a 4-by-0 matrix.
Error in network/subsasgn (line 11)
net = network_subsasgn(net,subscripts,v,netname);
Error in Untitled3 (line 77)
net.IW{1,1}=L;