www.gusucode.com > Matlab动力系统和时间序列分析工具箱 > Matlab动力系统和时间序列分析工具箱/lab432/gui/gui_mutual_average_inf.m

    function gui_mutual_average_inf;

% last modified 10.12.04

global TS GSD_GLOBALS

str=TS.name;
[selection,ok] = listdlg('PromptString','Select data:',...
                'SelectionMode','multiple','ListString',str);
if ~ok
    return
end
prompt = {'Enter maximal lag (in samples)'};
dlg_title = 'Enter maximal lag';
num_lines= 1;
def     = {num2str(min([128 floor(length(TS.data(:,1))/2)]))};
answer  = inputdlg(prompt,dlg_title,num_lines,def);
if isempty(answer)
    return
end
maxLag=str2num(answer{1});
   
if ok
    N=length(selection);
    Fignumbs=floor(N/3);
    Additaxes=mod(N,3);
    tempHandleA=[];
    tempHandleF=[];
    for i=1:Fignumbs
        tempHandleF(i)=figure('Units','characters',...
            'Name',['Mutual average information (in bits): ' num2str(selection(3*(i-1)+1)) ',' num2str(selection(3*(i-1)+2)) ',' num2str(selection(3*(i-1)+3)) ' (' str{selection(3*(i-1)+1)} ', ' str{selection(3*(i-1)+2)} ', ' str{selection(3*(i-1)+3)} ')'],...
            'NumberTitle','off','color',[1 1 1]);
        for j=1:3
            tempHandleA=[tempHandleA subplot(3,1,j)];
            mutual_average_inf(TS.data(:,selection(3*(i-1)+j)),maxLag);
            set(ylabel(TS.name{selection(3*(i-1)+j)}),'interpreter','none');
            drawnow;
        end
    end
    if Additaxes==1
        tempHandleF(end+1)=figure('Units','characters',...
            'Name',['Mutual average information (in bits): ' num2str(selection(3*Fignumbs+1))  ' (' str{selection(3*Fignumbs+1)} ' )'],...
            'NumberTitle','off','color',[1 1 1]);
    end
    if Additaxes==2
        tempHandleF(end+1)=figure('Units','characters',...
            'Name',['Mutual average information (in bits): ' num2str(selection(3*Fignumbs+1)) ',' num2str(selection(3*Fignumbs+2)) ' (' str{selection(3*Fignumbs+1)} ', ' str{selection(3*Fignumbs+2)} ')'],...
            'NumberTitle','off','color',[1 1 1]);
    end
    for i=1:Additaxes
        tempHandleA=[tempHandleA subplot(3,1,i)];
        mutual_average_inf(TS.data(:,selection(3*Fignumbs+i)),maxLag);
        set(ylabel(TS.name{selection(3*Fignumbs+i)}),'interpreter','none');
        drawnow;
    end
    set(tempHandleA,'fontsize',8);
    GSD_GLOBALS.fig_handles=[GSD_GLOBALS.fig_handles tempHandleF];
end