📄 svneural.m
字号:
function [out]=svneural(fname,inc,maxx,minx,maxy,miny,s1,s2,s3,w1,w2,b1,b2,f1,f2,f3)
%
% [out]=svneural(s1,s2,s3,w1,w2,b1,b2,f1,f2,f3);
%
% Saves a neural network type model to file
%
% fname = file name
% inc = matrix of included variables
% maxx = maximum x-values
% minx = minimum x-values
% maxy = maximum y-value
% miny = minimum y-value
% s1 = size of input layer
% s2 = size of hidden layer
% s3 = size of output layer
% w1 = weight matrix from first to hidden layer
% w2 = weight matrix from hidden layer to output
% b1 = hidden layer bias terms
% b2 = output layer bias terms
% f1 = input layer filters
% f2 = hidden layer filters
% f3 = output layer filters
%
%
% Open the file. If none is supplied, then put
% up a dialog box
%
if fname == []
[df_name df_path]=uiputfile('*.mod','Please select a model file');
if df_name ~= 0
%
% Change to the directory
%
[D L]=size(df_path);
if L == 3
if df_path ~= 'C:\'
df_path=df_path(:,1:L-1);
end
else
df_path=df_path(:,1:L-1);
end
eval(['cd ' num2str(df_path)]);
fname=df_name;
else
fname=[];
end
end
if fname ~= []
%
% Calculate various parameters
%
% *** Output MUST be first column!
% *** MUST be only one output
%
[D L]=size(inc);
inc=inc(:,2:L);
num_inc=sum(inc);
tot_var=L-1;
f=fopen(fname,'w');
%
% Header
%
fprintf(f,['[' num2str(hostid) ']']);
fprintf(f,'\n');
fprintf(f,'\n');
fprintf(f,'[Neural network type 1]');
fprintf(f,'\n');
fprintf(f,'\n');
%
% Total variables
%
fprintf(f,'[Total variables]');
fprintf(f,'\n');
fprintf(f,num2str(tot_var));
fprintf(f,'\n');
fprintf(f,'\n');
%
% Included variables
%
fprintf(f,'[Included variables]');
fprintf(f,'\n');
fprintf(f,num2str(num_inc));
fprintf(f,'\n');
fprintf(f,'\n');
%
% Maximum x-values for scaling
%
count=1;
fprintf(f,'[Maximum values]');
fprintf(f,'\n');
for i=1:tot_var
if inc(i)==1
fprintf(f,num2str(maxx(count)));
fprintf(f,'\n');
count=count+1;
end
end
fprintf(f,'\n');
%
% Minimum x-values for scaling
%
count=1;
fprintf(f,'[Minimum values]');
fprintf(f,'\n');
for i=1:tot_var
if inc(i)==1
fprintf(f,num2str(minx(count)));
fprintf(f,'\n');
count=count+1;
end
end
fprintf(f,'\n');
%
% Maximum y-value for re-scaling
%
fprintf(f,'[Maximum output]');
fprintf(f,'\n');
fprintf(f,num2str(maxy));
fprintf(f,'\n');
fprintf(f,'\n');
%
% Minimum y-value for re-scaling
%
fprintf(f,'[Minimum output]');
fprintf(f,'\n');
fprintf(f,num2str(miny));
fprintf(f,'\n');
fprintf(f,'\n');
%
% Topology information
%
fprintf(f,'[Input neurons]');
fprintf(f,'\n');
fprintf(f,num2str(s1));
fprintf(f,'\n');
fprintf(f,'\n');
fprintf(f,'[Hidden neurons]');
fprintf(f,'\n');
fprintf(f,num2str(s2));
fprintf(f,'\n');
fprintf(f,'\n');
fprintf(f,'[Output neurons]');
fprintf(f,'\n');
fprintf(f,num2str(s3));
fprintf(f,'\n');
fprintf(f,'\n');
%
% Filter constants
%
fprintf(f,'[Input layer filters]');
fprintf(f,'\n');
for i=1:s1
fprintf(f,num2str(f1(i)));
fprintf(f,'\n');
end
fprintf(f,'\n');
fprintf(f,'[Hidden layer filters]');
fprintf(f,'\n');
for i=1:s2
fprintf(f,num2str(f2(i)));
fprintf(f,'\n');
end
fprintf(f,'\n');
fprintf(f,'[Output layer filters]');
fprintf(f,'\n');
for i=1:s3
fprintf(f,num2str(f3(i)));
fprintf(f,'\n');
end
fprintf(f,'\n');
%
% Bias data
%
fprintf(f,'[Bias data - hidden layer]');
fprintf(f,'\n');
for i=1:s2
fprintf(f,num2str(b1(i)));
fprintf(f,'\n');
end
fprintf(f,'\n');
fprintf(f,'[Bias data - output layer]');
fprintf(f,'\n');
for i=1:s3
fprintf(f,num2str(b2(i)));
fprintf(f,'\n');
end
fprintf(f,'\n');
%
% weight data
% Sends in order of destination nodes
%
fprintf(f,'[Input - Hidden weights]');
fprintf(f,'\n');
for i=1:s2
for j=1:s1
fprintf(f,num2str(w1(j,i)));
fprintf(f,'\n');
end
end
fprintf(f,'\n');
fprintf(f,'[Hidden - Output weights]');
fprintf(f,'\n');
for i=1:s3
for j=1:s2
fprintf(f,num2str(w2(j,i)));
fprintf(f,'\n');
end
end
fprintf(f,'\n');
%
% Included variables
%
fprintf(f,'[Included variables]');
fprintf(f,'\n');
for i=1:tot_var
fprintf(f,num2str(inc(i)));
fprintf(f,'\n');
end
fprintf(f,'\n');
%
% Close the file
%
fprintf(f,'[END]');
fclose(f);
out=1;
else
out=0;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -