www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/@cgrules/reorder.m

    function [rules,newpos] = reorder(rules,index,dir)
%REORDER

%  Copyright 2000-2007 The MathWorks, Inc. and Ford Global Technologies, Inc.



if ~ismember(dir,[-1 1])
    error(message('mbc:cgrules:InvalidArgument'));
end
oldorder = 1:length(rules.fact_i1);
newpos = index + dir;
if  newpos<1 || newpos>length(rules.fact_i1)
    % Cannot promote the first or demote the last rule
    newpos = index;
    return
end

neworder = oldorder([1:index-1 index+1:end]);
neworder = [neworder(1:newpos-1) oldorder(index) neworder(newpos:end)];

rules.min1 = rules.min1(neworder);
rules.max1 = rules.max1(neworder);
rules.fact_i1 = rules.fact_i1(neworder);
rules.min2 = rules.min2(neworder);
rules.max2 = rules.max2(neworder);
rules.fact_i2 = rules.fact_i2(neworder);
rules.enable = rules.enable(neworder);
rules.exclude = rules.exclude(neworder);