function [x1,y1,x2,y2] = linechk(x1,y1,x2,y2) % LINECHK Input checking for line segments. % Copyright (c) 1995 by Kirill K. Pankratov % kirill@plume.mit.edu % 08/22/95, % String for transposing str = ['x1=x1'';'; 'y1=y1'';'; 'x2=x2'';'; 'y2=y2'';']; % Sizes sz = [size(x1); size(y1); size(x2); size(y2)]'; psz = prod(sz); % Check x1, y1 if psz(1)~=psz(2) error(' Arguments x1 and y1 must have the same size') end % Check x2, y2 if psz(3)~=psz(3) error(' Arguments x2 and y2 must have the same size') end % Check if any arguments are less than 2 by 1 if any(max(sz)<2) error(' Arguments x1, y1, x2, y2 must be at least 2 by 1 vectors') end % Check if no size is equal to 2 if any(all(sz~=2)) error(' Arguments x1, y1, x2, y2 must be 2 by 1 vectors') end % Find aruments to be transposed ............................. ii = find(sz(1,:)~=2); for jj = 1:length(ii) eval(str(ii(jj),:)); % Transpose if neccessary end sz(:,ii) = flipud(sz(:,ii)); % If vectors, extend to 2 by n matrices ...................... n = max(sz(2,:)); on = ones(1,n); if sz(2,1)