www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/@mvgraph1d/private/pr_factorsort.m
function pr_factorsort(gr) %PR_FACTORSORT % % Private function for sorting out any mismatch between data length and % number of given factors % Copyright 2000-2010 The MathWorks, Inc. and Ford Global Technologies, Inc. ud = get(gr.axes, 'UserData'); sd=size(ud.Data,2); factors=ud.Labels; labels=get(gr.factorsel,'String'); if iscell(labels) labels=labels{1}; end if isempty(factors) factors={}; end % get current factor selection values vals=get(gr.factorsel,'Value'); % check values if strcmp(labels,' ') && vals==1 % assume a new-graph case: initialise factor numbers sequentially % not needed in a 1D case else vals(vals>sd)=sd; end vals = max(vals, 1); vals = num2cell(vals); % sort out labels to match data if sd==0 lbls = {' '}; elseif length(factors)>=sd lbls = factors(1:sd); elseif length(factors)<sd lbls = cellstr([repmat('col',sd,1) num2str((1:sd)')]); lbls(1:length(factors)) = factors; end set(gr.factorsel,{'String','Value'},[{lbls},vals]);