www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/@calibrationdata/@calibration/setMap.m
function setMap(obj, mapI) %SETMAP Set map in calibration. % % SETMAP(CAL,MAP) sets the map MAP in the calibration CAL. % % See also SETAXIS, SETVALUE, SETCURVE, SETITEM. % Copyright 2004-2008 The MathWorks, Inc. % Get identifiers of inbound (I) and existing (E) referenced items; note % that only private referenced items should be added or removed! mapIdentifierI = get(mapI, {'Identifier'}); xAxisIdentifierI = get(mapI, {'XAxisIdentifier'}); xAxisIdentifierIType = obj.pGetAxisIdentifierType(xAxisIdentifierI); xAxisIdentifierI = xAxisIdentifierI(strcmp(xAxisIdentifierIType,'private')); % only private yAxisIdentifierI = get(mapI, {'YAxisIdentifier'}); yAxisIdentifierIType = obj.pGetAxisIdentifierType(yAxisIdentifierI); yAxisIdentifierI = yAxisIdentifierI(strcmp(yAxisIdentifierIType,'private')); % only private axisIdentifiersI = unique([xAxisIdentifierI, yAxisIdentifierI]); mapE = obj.getMap(mapIdentifierI); xAxisIdentifierE = get(mapE, {'XAxisIdentifier'}); xAxisIdentifierEType = obj.pGetAxisIdentifierType(xAxisIdentifierE); xAxisIdentifierE = xAxisIdentifierE(strcmp(xAxisIdentifierEType,'private')); % only private yAxisIdentifierE = get(mapE, {'YAxisIdentifier'}); yAxisIdentifierEType = obj.pGetAxisIdentifierType(yAxisIdentifierE); yAxisIdentifierE = yAxisIdentifierE(strcmp(yAxisIdentifierEType,'private')); % only private axisIdentifiersE = unique([xAxisIdentifierE, yAxisIdentifierE]); % Find existing private axis dependencies that will be removed axisIdentifiersToRemove = setdiff(axisIdentifiersE, axisIdentifiersI); % Find new private axis dependencies that will be added axisIdentifiersToAdd = setdiff(axisIdentifiersI, axisIdentifiersE); for c = 1:numel(axisIdentifiersToAdd), pDoAddAxis(obj, calibrationdata.axis('Identifier', axisIdentifiersToAdd{c})); end try % Add map pDoSetMap(obj, mapI); % Remove private axes pDoRemoveAxis(obj, axisIdentifiersToRemove); catch ME % Clean up - remove added dependent axes pDoRemoveAxis(obj, axisIdentifiersToAdd); % Rethrow rethrow(ME) end