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

    function p = modelproperties(m,p)
%MODELPROPERTIES interface to model properties
%
% p = modelproperties(m,p);
%        HighOrder
%        LowOrder

%  Copyright 2006-2007 The MathWorks, Inc.

ID = p.Type;
[p,OK] = PersistentStore(p,ID);
if ~OK
    % *  *order* integer vector  [get/set( m, 'order' )]
    p = addprop(p,'HighOrder',...
        @( m ) iGetHigh(m),...
        @( m,v ) iSetHigh(m,v),...
        'int',[2 Inf],...
        'Polynomial order above knot');

    p = addprop(p,'LowOrder',...
        @( m ) iGetLow(m),...
        @( m,v ) iSetLow(m,v),...
        'int',[2 Inf],...
        'Polynomial order below knot');


    % standard localmod properties
    p = modelproperties(m.localmod,p,m);
    
    PersistentStore(p,ID);
end

%% iGetHigh
function v = iGetHigh(L)

v = getorder(L);
v = v(1);

%% iSetHigh
function L = iSetHigh(L,v)

if v<2
    error(message('mbc:localpspline:InvalidValue'));
end

ord = getorder(L);
ord(1) = v;
L = setorder(L,ord);

%% iGetLow
function v = iGetLow(L)

v = getorder(L);
v = v(2);

%% iSetLow
function L = iSetLow(L,v)

if v<2
    error(message('mbc:localpspline:InvalidValue'));
end

ord = getorder(L);
ord(2) = v;
L = setorder(L,ord);