gusucode.com > 信号处理工具箱 - signal源码程序 > signal\signal\siggui\private\lfdata.m

    function [xdata,ydata]=lfdata(pos,labelhandles,lfs)
%LFDATA  Line/Frame Data - Converts rectangular [l b r t] to xdata and ydata.
%
%   [xdata,ydata]=lfdata(pos,labelhandles,sz) 
%       inputs:
%     pos - length N cell array vector of position vectors, given 
%           as [left bottom right top] (as opposed to [l b w h])
%     labelhandles - length N vector of handles to corresponding text 
%           labels.  The xdata and ydata will include a gap which skips
%           over the label based on its extent property.
%     lfs - label-to-frame spacing, in pixels (scalar).
%   outputs:
%     xdata, ydata - length N cell arrays containing x and ydata of
%           lines which obey the rectanglular inputs but leave gaps
%           where the labels are.
%
%   T. Krauss, 12/1/95
 
%   Copyright (c) 1988-98 by The MathWorks, Inc.
% $Revision: 1.1 $

    N = length(pos);
    xdata = cell(N,1);
    ydata = cell(N,1);

    ex = get(labelhandles,'extent');
    if N==1
        ex=num2cell(ex,2);
    end

    for i=1:N
        xdata(i) = num2cell([pos{i}(1) pos{i}(3) pos{i}(3) ...
             ex{i}(1)+ex{i}(3)+lfs NaN ex{i}(1)-lfs pos{i}(1) pos{i}(1)],2);
        ydata(i) = num2cell([pos{i}(2) pos{i}(2) pos{i}(4) pos{i}(4) NaN ...
             pos{i}(4) pos{i}(4) pos{i}(2)],2);
    end