sizeofdict.m

来自「% Atomizer Main Directory, Version .802 」· M 代码 · 共 82 行

M
82
字号
function [m, L] = SizeOfDict(n, NameOfDict, par1, par2, par3)
% SizeOfDict -- the size of a (merged) dictionary
%  Usage:
%	[m, L] = SizeOfDict(n, NameOfDict, par1, par2, par3)
%  Inputs:
%	n		the sample size
%	NameOfDict	name of the dictionary
%	par1,par2,par3	the parameters of the dictionary
%
%	Use 'help dictionary' for dictionary objects: NameOfDict,par1,par2,par3
%  Outputs:
%	m		# of basis functions
%	L		# of levels = m/n
% 

NumberOfDicts = LengthList(NameOfDict);
m = 0;
L = 0;
for i = 1:NumberOfDicts,
	NAME = NthList(NameOfDict, i);
        PAR1 = NthList(par1, i);
        PAR2 = NthList(par2, i);
        PAR3 = NthList(par3, i);

	if strcmp(NAME, 'DIRAC'),
		L0 = 1;
		m0 = n;
	elseif strcmp(NAME, 'DCT'),
		L0 = PAR1;
		m0 = n * L0;
	elseif strcmp(NAME, 'DST'),
		L0 = PAR1;
		m0 = n * L0;
	elseif strcmp(NAME, 'PO'),
		L0 = 1;
		m0 = n;
	elseif strcmp(NAME, 'PBS'),
		L0 = 1;
		m0 = n;
	elseif strcmp(NAME, 'STAT') | strcmp(NAME, 'TIWT'),
		L0 = PAR1 + 1;
		m0 = n * L0;
	elseif strcmp(NAME, 'SP'),
		L0 = PAR1 + 1;
		m0 = n * L0;
	elseif strcmp(NAME, 'WP'),
		L0 = PAR1 + 1;
		m0 = n * L0;
	elseif strcmp(NAME, 'CP'),
		L0 = PAR1 + 1;
		m0 = n * L0;
	elseif strcmp(NAME, 'MDC'),
		L0 = (PAR1 + 1) * PAR2;
		m0 = n * L0;
	elseif strcmp(NAME, 'HS'),
		L0 = 1;
		m0 = n;
	elseif strcmp(NAME, 'JUMP'),
		L0 = 1;
		m0 = n;
		%L0 = 2;
		%m0 = 2 * n;
	elseif strcmp(NAME, 'POTV'),
		L0 = 1;
		m0 = n;
	elseif strcmp(NAME, 'HRD'),
		L0 = 2;
		m0 = 2*n;
	elseif strcmp(NAME, 'GFFT'),
		L0 = PAR3;
		m0 = PAR1 * PAR3 * 2;
	elseif strcmp(NAME, 'UDCT'),
		L0 = PAR1;
		m0 = n * L0;
	elseif strcmp(NAME, 'UDST'),
		L0 = PAR1;
		m0 = n * L0;
	end

	m = m + m0; L = L + L0;
end

⌨️ 快捷键说明

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