decode.m

来自「遗传算法的目录以及各种算例」· M 代码 · 共 53 行

M
53
字号
function [out,desc,bits]=decode(bin,description,action);
%
% Decode a number of parameters from a binary
% sequence, using a description vector.
%
% Useage:
%
%	[Decoded_parameters,desc,bits]=decode(binary,description,action);
%
% Description:
%
%	[Min	Res	Max]
%
% If action is specified as = 0, then no decoding takes
% place, the routine just ascertains the size of the
% binary vector.
%

%
% Determine the number of parameters
%
[num_parm L]=size(description);

%
% Determine the number of bits required for each
% parameter
%
pointer=0;
for i = 1 : num_parm
	N=(description(i,3)-description(i,1))/description(i,2);
	bits(i,1)=ceil(log(N)/log(2));
	%
	% The resolution has now changed.
	% Update the description vector.
	%
	description(i,2)=(N*description(i,2))/(2^bits(i,1));

	%
	% Now extract the relevant number of bits from the
	% input chromasome
	%
	if action ~= 0
		[D L]=size(bin);
		chrom=bin(1,1:bits(i,1));
		bin=bin(1,bits(i,1)+1:L);
		out(1,i)=unbin(chrom,bits(i,1));
		out(1,i)=(out(1,i)*description(i,2))+description(i,1);
	end
end
desc=description;


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?