亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? eventlabel.m

?? 這個是時間序列分析的可視化工具
?? M
字號:
function varargout = eventlabel(varargin);
%eventlabel       Interactive labeling of events on a plot
% Designed to work in a scrolling scope.
%
% This function is provided as an example only.  It has not been
% tested, and therefore, it is not officially supported by The
% MathWorks, Inc.
%
%Input/Output options
% eventlabel            %Turn on, current axis
% eventlabel(state);    %Set state on current axis ('on' or 'off')
% eventlabel('clear')   %Clear all events on current axis
% eventlabel(hAx);      %Turn on specified axis
% eventlabel(state,hAx);    %Set state on specified axis
% eventlabel('clear')   %Clear all events on specified axis
% eventlabel('update',hAx,EventNo,[xnew ynew]);   %Reposition to new coordinates.
% [xnew], or [xnew ynew]
% events = eventlabel;  %Return events structure, current axis
% events = eventlabel(hAx);  %Return events structure, specified axis

% Written by Scott Hirsch
% shirsch@mathworks.com
% Copyright (c) by The MathWorks, Inc. 1985-2003
%


%Parse I/O
msg = nargchk(0,3,nargin);
if nargin==4
    state = varargin{1};
    hAx = varargin{2};
    EventNo = varargin{3};
    coords = varargin{4};
    if ~ishandle(hAx)
        error('Second input argument must be a valid axis handle');
    end;    
    
elseif nargin==2
    state = varargin{1};
    hAx = varargin{2};
    if ~ishandle(hAx)
        error('Second input argument must be a valid axis handle');
    end;
elseif nargin==1
    if ischar(varargin{1})
        state = varargin{1};
        hAx = gca;
    else
        state = 'on';
        hAx = varargin{1};
    end;
else
    state = 'on';
    hAx = gca;
end;

if nargout==1    %Return events structure
    events = getappdata(hAx,'events');
%     rmfield(events,'graphicsdetails');
    varargout{1} = events;
    return
end;

switch state
    case 'on'       % Set the WindowButtonDownFcn
        set(gcf,'WindowButtonDownFcn','eventlabel down')
        set(gcf,'DoubleBuffer','on');       %eliminate flicker
        
        %Create appdata structure storing all events
        graphicsdetails = struct('string',{},'coordinates',{},'labelhandle',{});
        %String - display string
        %coordinates - display coordinates [x,y]
        
        %See if there are any existing events on this axis
        events = getappdata(hAx,'events');
        
        if isempty(events)  %Initialize if it doesn't exist
            events = struct('name',{},'time',{},'graphicsdetails',graphicsdetails);
        end;
        
        setappdata(hAx,'events',events);
        
    case 'down'     % Execute the WindowButtonDownFcn
        htype = get(gco,'Type');
        tag = get(gco,'Tag');
        
        if strcmp(htype,'line') | strcmp(htype,'axes')     %Line or axes - Add text object
            %User-selected point
            cp = get(hAx,'CurrentPoint');
            x = cp(1,1);       %first xy values
            y = cp(1,2);       %first xy values
            
            
            %Prompt user for event name.  Add event label to plot
            %name = inputdlg('Event Name: ');
%             %If user cancelled, break out
%             if isempty(name)
%                 return
%             end;
%             
%             name = name{1};     %Break out of cell.
%             th = text(x,y,name);
            th = text(x,y,' ','Editing','on');
            waitfor(th,'String');        %Wait for string to be updated
            name = get(th,'String');
            set(th,'Editing','off')

            %For R13 or higher (MATLAB 6.5), use a background color on the text string
            v=ver('MATLAB');
            v=str2num(v.Version(1:3));
            if v>=6.5
                set(th,'BackgroundColor','y');
            end;
            
            %Add a context menu to the label
            % 1 - Edit
            % 2 - Delete
            mh = uicontextmenu('Tag','TipMenu');
            
            % Define callbacks for context menu items
            %         cb1 = ['name = inputdlg(''Event Name: '');set(gco,''String'',name')];
            cb1 = @localEditCallback;
            cb2 = ['ud = get(gco,''UserData'');delete([gco ud(2)]);'];
            
            % Define the context menu items
            item1 = uimenu(mh, 'Label', 'Edit', 'Callback', cb1);
            item2 = uimenu(mh, 'Label', 'Delete', 'Callback', cb2);
            
            %Associate the context menu with the label
            set(th,'UIContextMenu',mh);
            
            %Find nearest actual time value
            lh = findobj(hAx,'Type','line');        %Any/all lines.  Assume common time basis
            if ~isempty(lh)
                lh = lh(1);     %Keep first one we find
                xd = get(lh,'XData');
                time = local_nearest(x,xd);
            else        %Couldn't find any lines.  Just use the value where the user clicked.
                time= x;
            end;                
            %Update event structure
            events = getappdata(hAx,'events');
            EventNo = length(events)+1;
            events(EventNo).name= name;
            events(EventNo).time= time;
            events(EventNo).graphicsdetails.string = name;          %This leaves the option of allowing different display string
            events(EventNo).graphicsdetails.coordinates = [x y];    %Display coordinates
            events(EventNo).graphicsdetails.labelhandle = th;    %Display coordinates
            setappdata(hAx,'events',events);        %Update appdata
            setappdata(th,'EventNo',EventNo);       %Store event number in the text
            
        elseif strcmp(htype,'text')
            set(gco,'EraseMode','xor')
            set(gcf,'WindowButtonMotionFcn','eventlabel move', ...
                'WindowButtonUpFcn','eventlabel up');
        end
        
    case 'move'      % Execute the WindowButtonMotionFcn
        if ~isempty(gco)
            th = gco;
            
            cp = get(hAx,'CurrentPoint');
            pt = cp(1,[1 2]);
            
            x = cp(1,1);       %first xy values
            y = cp(1,2);       %first xy values
            
            set(th,'Position', [x y 0])
            
            %Update coordinates in event structure
            EventNo = getappdata(th,'EventNo');
            events = getappdata(hAx,'events');
            events(EventNo).graphicsdetails.coordinates = [x y];
            setappdata(hAx,'events',events);        %Update appdata
            drawnow
        end;
    case 'up'  % Execute the WindowButtonUpFcn
        htype = get(gco,'Type');
        if strcmp(htype,'text')
            set(gco,'EraseMode','Normal')
            set(gcf,'WindowButtonMotionFcn','')
        end;
        
    case 'update'             %Update the cursor value
        %Reposition the event label
        %Find the event
        events = getappdata(hAx,'events');
        Nevents = length(events);
        
        %Do nothing if invalid event
        if (EventNo<1) | (EventNo>Nevents)
            return
        end;
        
        event = events(EventNo);      
        th = event.graphicsdetails.labelhandle; %Handle to label
        if length(coords)==1    %Specified x only.  Use current y value
            curr_pos = event.graphicsdetails.coordinates;
            coords(2) = curr_pos(2);
        end;
        
        set(th,'Position',[coords 0]);
        
        %Update event structure
        events(EventNo).graphicsdetails.coordinates = coords;
        setappdata(hAx,'events',events);
        
    case 'clear'    %Clear events, but leave eventlabel on
        % Delete all displayed events
        events = getappdata(hAx,'events');
        Nevents = length(events);
        for EventNo = 1:Nevents
            delete(events(EventNo).graphicsdetails.labelhandle);
        end;
        
        % Clear the event structure
        graphicsdetails = struct('string',{},'coordinates',{},'labelhandle',{});
        events = struct('name',{},'time',{},'graphicsdetails',graphicsdetails);
        setappdata(hAx,'events',events);
        
    case 'off'   % Unset the WindowButton...Fcns
        set(gcf,'WindowButtonDownFcn','','WindowButtonUpFcn','')
end


function localEditCallback(obj,event);
name = inputdlg('Event Name: ');
set(obj,'String',name)

events = getappdata(get(obj,'Parent'),'events');
events.name = name;
events.graphicsdetails.string = name;
setappdata(get(obj,'Parent'),'events',events);


function xv=local_nearest(x,xl)
%Inputs:
% x   Selected x value
% xl  Line Data (x)

%Find nearest value of xl to x
%Special Case: Line has a single non-singleton value
if sum(isfinite(xl))==1
    fin = find(isfinite(xl));
    xv = xl(fin);
else
    %Normalize axes
    xlmin = min(xl);
    xlmax = max(xl);
    
    xln = (xl - xlmin)./(xlmax - xlmin);
    xn = (x - xlmin)./(xlmax - xlmin);
    
    %Find nearest point
    a = xln - xn;       %Distance between x and the line
    
    [junk,ind] = min(abs(a));
    
    %Nearest value on the line
    xv = xl(ind);
end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二| 午夜伦理一区二区| 亚洲国产精品久久一线不卡| 日本怡春院一区二区| 国产99久久久国产精品潘金| 日韩你懂的电影在线观看| 国产亚洲视频系列| 五月婷婷另类国产| www.在线欧美| 日韩欧美国产成人一区二区| 亚洲精品少妇30p| 国产伦精品一区二区三区视频青涩 | 色婷婷精品大在线视频| 欧美大度的电影原声| 一区二区不卡在线播放| 国产一区二区三区久久悠悠色av| 欧美日韩一区二区在线观看视频| 久久香蕉国产线看观看99| 一区二区免费看| 国产精品系列在线观看| 日韩美女天天操| 亚洲国产精品久久一线不卡| 成人高清视频在线观看| 亚洲精品一区二区三区四区高清 | 偷拍日韩校园综合在线| 99re66热这里只有精品3直播| 精品国产一区二区在线观看| 三级久久三级久久久| 一本色道a无线码一区v| 国产精品人人做人人爽人人添| 久久草av在线| 日韩亚洲欧美在线| 亚洲一区二区三区在线播放| 91在线你懂得| 国产精品久久久久毛片软件| 国产一区二区三区四区在线观看| 91精品国产一区二区| 视频在线观看一区二区三区| 在线免费不卡视频| 亚洲精品一二三四区| 91久久线看在观草草青青| 亚洲国产精品成人综合 | 精品国产乱码久久久久久久| 男女男精品网站| 欧美一区二区在线看| 日本欧美一区二区| 日韩一区二区视频在线观看| 美女一区二区三区在线观看| 日韩欧美中文字幕一区| 成人a区在线观看| 中文字幕不卡在线| av男人天堂一区| 一区二区三区国产精品| 欧美欧美欧美欧美首页| 天堂蜜桃一区二区三区| 91精品国产综合久久小美女 | 亚洲欧美视频在线观看视频| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 成人开心网精品视频| 中文字幕欧美一| 色综合久久久久网| 石原莉奈在线亚洲二区| 26uuu精品一区二区| 懂色av噜噜一区二区三区av| 亚洲欧美日韩小说| 欧美区在线观看| 国产麻豆视频一区二区| 亚洲乱码中文字幕| 8x8x8国产精品| 国产高清亚洲一区| 亚洲欧洲制服丝袜| 精品久久久久久久久久久久包黑料| 国产精品一区2区| 亚洲欧洲国产日本综合| 日韩午夜在线影院| 国产成人99久久亚洲综合精品| 一区二区三区免费在线观看| 精品国内二区三区| 色综合久久天天| 精一区二区三区| 亚洲欧美国产77777| 91精品国产一区二区三区香蕉| 国产乱对白刺激视频不卡| 亚洲欧美激情在线| 精品国产露脸精彩对白| 色哟哟在线观看一区二区三区| 美女在线视频一区| 亚洲摸摸操操av| 337p日本欧洲亚洲大胆色噜噜| 色婷婷精品久久二区二区蜜臀av| 久88久久88久久久| 亚洲一区二区三区四区五区中文| 亚洲精品一区二区三区在线观看| 欧美亚洲一区二区三区四区| 国产一区91精品张津瑜| 日韩精品三区四区| 中文字幕在线一区| 欧美精品一区二区精品网| 欧洲视频一区二区| 成人ar影院免费观看视频| 久久黄色级2电影| 婷婷中文字幕一区三区| 亚洲综合色网站| 亚洲欧美日本韩国| 国产精品网曝门| 久久久精品国产免大香伊 | 日韩欧美国产麻豆| 777欧美精品| 欧美日韩中文精品| 欧美性受极品xxxx喷水| 91偷拍与自偷拍精品| 成人三级伦理片| 国产91在线观看| 国产综合久久久久影院| 久久国产免费看| 男女激情视频一区| 美女国产一区二区| 日本va欧美va精品| 午夜久久电影网| 亚洲成人综合网站| 亚洲超碰97人人做人人爱| 午夜视频久久久久久| 亚洲成年人影院| 七七婷婷婷婷精品国产| 日本不卡一二三| 九九在线精品视频| 国产专区欧美精品| 国产成人午夜电影网| 成人在线视频一区二区| 99久久综合99久久综合网站| 成人性生交大片免费看视频在线| 粉嫩aⅴ一区二区三区四区五区| 丁香激情综合国产| 色av成人天堂桃色av| 欧美亚洲一区三区| 欧美一区二区在线看| 久久嫩草精品久久久精品| 欧美精彩视频一区二区三区| 最好看的中文字幕久久| 亚洲精品视频一区二区| 五月婷婷综合在线| 久久av老司机精品网站导航| 国产精品一线二线三线| 成人精品在线视频观看| 日本大香伊一区二区三区| 9191久久久久久久久久久| 精品国产乱码久久| 亚洲色图在线播放| 日韩中文字幕不卡| 国产成人啪免费观看软件| 91视频免费看| 欧美一区二区在线看| 日本一区二区不卡视频| 亚洲专区一二三| 精久久久久久久久久久| 国产99久久久国产精品| 91国偷自产一区二区开放时间| 日韩欧美一级二级三级| 国产精品网曝门| 日韩精彩视频在线观看| 国产精品1区2区| 欧美色偷偷大香| 久久久www成人免费毛片麻豆| 亚洲蜜臀av乱码久久精品| 男人的天堂久久精品| 成人福利在线看| 日韩视频在线永久播放| 亚洲视频一区在线观看| 国产一区二三区好的| 色88888久久久久久影院野外| 欧美电影精品一区二区| 最新热久久免费视频| 狠狠色丁香久久婷婷综| 欧洲一区二区三区免费视频| 国产偷v国产偷v亚洲高清| 午夜精品久久久久影视| 成人国产精品免费| 337p日本欧洲亚洲大胆色噜噜| 亚洲精选免费视频| 国产麻豆91精品| 欧美一区二区三区婷婷月色| 亚洲欧美日韩久久| 国产精品一二三四五| 91精品综合久久久久久| 亚洲欧美另类在线| 国产91精品露脸国语对白| 欧美成人精品3d动漫h| 亚洲国产精品影院| 91在线码无精品| 成人免费在线播放视频| 国产乱码精品一区二区三区五月婷| 欧美三级电影网站| 亚洲女厕所小便bbb| 福利一区二区在线| 久久新电视剧免费观看| 极品美女销魂一区二区三区 | av激情综合网| 国产精品女同互慰在线看| 国产精品夜夜嗨| 久久久一区二区|