www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/@xregGui/@intervalPatch1D/convertConstraintVector.m
function int = convertConstraintVector(xdata, condata) %CONVERTCONSTRAINTVECTOR Create intervals from constraint information. % % INT = CONVERTCONSTRAINTVECTOR(X, CONDATA) is a static method that % converts logical or distance constraint values into open intervals. % Copyright 2006-2013 The MathWorks, Inc. if isempty(xdata) int = NaN; else % Convert constraint values into logical where true implies outside the % constraint, not inside. if islogical(condata) condata = ~condata; else condata = condata>1e-6; end % Data is padded at each end: it is assumed that outside the range is % outside constraint. condatadiff = diff([1, condata(:)', 1]); xdata = xdata(:)'; xdatamid = [xdata(1), xdata(1:end-1)+diff(xdata)/2 xdata(end);]; pos = [find(condatadiff>0), find(condatadiff<0)]; int = xdatamid(sort(pos)); end