www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/@calibrationdata/@calibration/setCurve.m
function setCurve(obj, curveI) %SETCURVE Set curve in calibration. % % SETCURVE(CAL,CURVE) sets the curve CURVE in the calibration CAL. % % See also SETAXIS, SETVALUE, SETMAP, 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! curveIdentifierI = get(curveI, {'Identifier'}); xAxisIdentifierI = get(curveI, {'XAxisIdentifier'}); xAxisIdentifierIType = obj.pGetAxisIdentifierType(xAxisIdentifierI); xAxisIdentifierI = xAxisIdentifierI(strcmp(xAxisIdentifierIType,'private')); % only private axisIdentifiersI = unique(xAxisIdentifierI); curveE = obj.getCurve(curveIdentifierI); xAxisIdentifierE = get(curveE, {'XAxisIdentifier'}); xAxisIdentifierEType = obj.pGetAxisIdentifierType(xAxisIdentifierE); xAxisIdentifierE = xAxisIdentifierE(strcmp(xAxisIdentifierEType,'private')); % only private axisIdentifiersE = unique(xAxisIdentifierE); % 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 curve pDoSetCurve(obj, curveI); % Remove private axes pDoRemoveAxis(obj, axisIdentifiersToRemove); catch ME % Clean up - remove added dependent axes pDoRemoveAxis(obj, axisIdentifiersToAdd); % Rethrow rethrow(ME) end