Dynamic-Calibration/utils/YALMIP-master/operators/interp1_nonlinear.m

34 lines
1.0 KiB
Matlab
Executable File

function varargout = interp1_nonlinear(varargin)
%INTERP1_NONLINEAR (overloaded)
switch class(varargin{1})
case 'double'
% YALMIP shuffles around argument and places y-values (to be optimized)
% in first argument
if isempty(varargin{2})
xifi = varargin{1};
xi = xifi(1:length(xifi)/2);
fi = xifi(length(xifi)/2+1:end);
varargout{1} = interp1(xi,fi,varargin{3},varargin{4});
else
varargout{1} = interp1(varargin{1},varargin{2},varargin{3},varargin{4});
end
case 'char'
if isempty(varargin{4})
xifi = varargin{3};
xi = xifi(1:length(xifi)/2);
F = diff(xi) >= 0;
else
F = [];
end
operator = struct('convexity','none','monotonicity','none','definiteness','none','model','callback');
varargout{1} = F;
varargout{2} = operator;
varargout{3} = varargin{3};
otherwise
error('SDPVAR/INTERP1_NONLINEAR called with strange argument');
end