www.pudn.com > GA.rar > dsxy2figxy.m, change:2010-08-02,size:960b


function varargout = dsxy2figxy(varargin) 
if length(varargin{1}) == 1 && ishandle(varargin{1}) ... 
                            && strcmp(get(varargin{1},'type'),'axes')    
    hAx = varargin{1}; 
    varargin = varargin(2:end); 
else 
    hAx = gca; 
end; 
if length(varargin) == 1 
    pos = varargin{1}; 
else 
    [x,y] = deal(varargin{:}); 
end 
axun = get(hAx,'Units'); 
set(hAx,'Units','normalized');  
axpos = get(hAx,'Position'); 
axlim = axis(hAx); 
axwidth = diff(axlim(1:2)); 
axheight = diff(axlim(3:4)); 
if exist('x','var') 
    varargout{1} = (x - axlim(1)) * axpos(3) / axwidth + axpos(1); 
    varargout{2} = (y - axlim(3)) * axpos(4) / axheight + axpos(2); 
else 
    pos(1) = (pos(1) - axlim(1)) / axwidth * axpos(3) + axpos(1); 
    pos(2) = (pos(2) - axlim(3)) / axheight * axpos(4) + axpos(2); 
    pos(3) = pos(3) * axpos(3) / axwidth; 
    pos(4) = pos(4) * axpos(4 )/ axheight; 
    varargout{1} = pos; 
end 
set(hAx,'Units',axun)