www.gusucode.com > mbcmodels 工具箱 matlab 源码程序 > mbcmodels/@xregrbf/modelproperties.m

    function p = modelproperties(m,p)
%MODELPROPERTIES interface to model properties
%
% p = modelproperties(m,p);
%       'Kernel'
%       'Continuity'   only defined for wendland

%  Copyright 2006-2007 The MathWorks, Inc.


persistent enum
if isempty(enum)
    enum = findtype('mbcmodel.rbf.kernels');
end

ID = getType(m);
[p,OK] = PersistentStore(p,ID);
if ~OK
    p = addprop(p,'Kernel',...
        @( m ) get( m, 'kernel' ),...
        @( m,v ) i_SetKernel( m, v ),...
        'enum',enum.Strings,...
        'RBF kernel');
    p = addprop(p,'Continuity',...
        @( m ) get( m, 'cont' ),...
        @( m,v ) i_SetContinuity( m, v ),...
        'int',[0 6],...
        'Continuity for Wendland kernel (0,2,4,6)');

    p = modelproperties(m.xreglinear,p);
    
    PersistentStore(p,ID);
end

%% Set function for RBF Kernel
function m = i_SetKernel( m, v )

m = set( m, 'kernel', v );
% Need to reset the model so that it will fit correctly
m = reset( m );

%% Set function for RBF Continuity
function m = i_SetContinuity( m, v )

% Need to check that the continuity is one of [0, 2, 4, 6]
if isscalar( v ) && any( v == [0, 2, 4, 6] ),
    m = set( m , 'cont', v );
    % Need to reset the model so that it will fit correctly
    m = reset( m );
else
    error(message('mbc:mbcmodel:rbfproperties:InvalidInput'));
end