www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/@cgoppoint/CheckNames.m
function [op,changed_i,oldnames,newnames] = CheckNames(op,pr) % [op,changed_i] = CheckNames(op) % Ensure unassigned columns have unique names within project % Copyright 2000-2010 The MathWorks, Inc. and Ford Global Technologies, Inc. check = ~isvalid(op.ptrlist) | ... op.created_flag==1; check = find(check); changed_i = []; oldnames = []; newnames = []; for i = 1:length(check) oldname = op.orig_name{check(i)}; newname = deblank(uniquename(pr,oldname)); if ~strcmp(oldname,newname) newname = iNewDataName(op,oldname,pr); changed_i = [changed_i check(i)]; oldnames = [oldnames {oldname}]; newnames = [newnames {newname}]; op.orig_name{check(i)} = newname; end end function newname = iNewDataName(op,oldname,pr) % add _Data if name is already in project % make sure any empty names are strings op.orig_name(cellfun('isempty',op.orig_name))=''; %remove '_Data' from name so we don't get a '_Data_Data' suffix oldname=regexprep(oldname,'(\_Data\_?[\d]*)$',''); % look for other oldname_Data items in the data set tok=regexp(op.orig_name,[oldname,'\_Data\_?(\d*)$'],'tokens','once'); OK = cellfun('isempty',tok); % add _Data suffix as this is preferable to _1 etc. if ~all(OK) % oldname_Data already exists in data set so add index to name ind = 1; for i=find(~OK) suffix = tok{i}{1}; if ~isempty(suffix) ind = max(ind,str2double(suffix)+1); end end suffix = sprintf('_Data_%d',ind); else suffix = '_Data'; end %final sanity check to make sure the name is unique newname = deblank(uniquename(pr,[oldname,suffix]));