www.gusucode.com > mbc 工具箱 matlab 源码程序 > mbc/@mbcfoundation/@gridDefinition/merge.m
function merge(obj, varargin) %MERGE Merge cells in the grid % % MERGE(OBJ, ROWRANGE, COLRANGE, ...) merges cells in the rectangle % defined by ROWRANGE and COLRANGE. More than one pair of row and column % ranges can be used as inputs. % Copyright 2000-2004 The MathWorks, Inc. and Ford Global Technologies, Inc. nPairs = length(varargin)/2; if nPairs~=floor(nPairs) error(message('mbc:mbcfoundation:gridDefinition:InvalidArgument')); end if ~obj.DoMerge % Initialise merging data obj.MergeNRows = uint16(zeros(obj.Rows, obj.Columns)); obj.MergeNCols = uint16(zeros(obj.Rows, obj.Columns)); obj.DoMerge = true; end args = reshape(varargin, [2, nPairs]); for n = 1:nPairs rRange = args{1, n}; cRange = args{2, n}; if rRange(1)>rRange(2) || cRange(1)>cRange(2) error(message('mbc:mbcfoundation:gridDefinition:InvalidIndex')); end if rRange(1)<1 warning(message('mbc:mbcfoundation:gridDefinition:InvalidIndex1')); rRange(1)=1; end if cRange(1)<1 warning(message('mbc:mbcfoundation:gridDefinition:InvalidIndex2')); cRange(1)=1; end if rRange(2)>obj.Rows warning(message('mbc:mbcfoundation:gridDefinition:InvalidIndex3')); rRange(2)=obj.Rows; end if cRange(2)>obj.Columns warning(message('mbc:mbcfoundation:gridDefinition:InvalidIndex4')); cRange(2)=obj.Columns; end obj.MergeNRows(rRange(1), cRange(1)) = uint16(rRange(2)-rRange(1)+1); obj.MergeNCols(rRange(1), cRange(1)) = uint16(cRange(2)-cRange(1)+1); end