⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svneural.m

📁 王小平《遗传算法——理论、应用与软件实现》随书光盘
💻 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 + -