⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plota.m

📁 matlab数字信号处理工具箱
💻 M
📖 第 1 页 / 共 4 页
字号:
                                %if k1~=k2
                                s = subplot(length(list2),length(list1),k1+(k2-1)*length(list1));
                                tmp = abs(squeeze(X.DTF(list2(k2),list1(k1),list3)));
                                if isfield(X,'ci'),
                                        if isfield(X,'p'),
                                                h = plot(list3,[abs(tmp),tanh([atanh(tmp)*[1,1]+ones(size(tmp))*X.ci*sqrt(1/2/(min(X.N)-X.p))*[1,-1]])]);        
                                        else
                                                h = plot(list3,[abs(tmp),tanh(atanh(tmp)+X.ci/(sqrt(X.N))),tanh(atanh(tmp)-X.ci/(sqrt(X.N)))]);  
                                        end
                                        set(h(2),'color',[0 0.8 1]);
                                        set(h(3),'color',[0 0.8 1]);                     
                                        set(h(1),'color',[0 0 1]);
                                        axis([min(list3),max(list3),-0.5,1.2])
                                else
                                        area(list3,abs(tmp));
                                        axis([min(list3),max(list3),0,1])
                                end;
                                set(s,'FontSize',6); 
                                if isfield(X,'ElectrodeName'),
                                        if k1==1,
                                                y=ylabel(X.ElectrodeName(list2(k2)));
                                                set(y,'FontSize',6);
                                        end;
                                        if k2==1,
                                                t = title(X.ElectrodeName(list1(k1)));
                                                set(t,'FontSize',6);
                                        end;
                                end;                      
                                %end
                        end;
                end;
                suptitle('DTF')    
                
        elseif (length(size(X.DTF))==4) & ((size(X.DTF,4)==2) | (size(X.DTF,4)==3)) ,
                if nargin<2,
                        list2=1:size(X.DTF,1);
                        list1=1:size(X.DTF,2);
                        list3=1:size(X.DTF,3);
                else
                        list2=arg2;
                        list1=arg3;
                        list3=arg4';
                end;
                M = size(X.DTF,1);
                for k1 = 1:length(list1);
                        for k2 = 1:length(list2);%k1:M;
                                s = subplot(length(list2),length(list1),k1+(k2-1)*length(list1));
                                hold on
                                if isfield(X,'U')
                                        % with interval confidence and significant
                                        % difference
                                        tmp = abs(squeeze(X.DTF(list2(k2),list1(k1),list3,1)));
                                        tmpU = abs(squeeze(X.U(list2(k2),list1(k1),list3,1)));
                                        tmpL = abs(squeeze(X.L(list2(k2),list1(k1),list3,1)));
                                        h = plot(list3,[tmp,tmpU,tmpL]);
                                        set(h(1),'color',[0.2 0.2 1]);
                                        set(h(2),'color',[0.9 0.9 1]);
                                        set(h(3),'color',[0.9 0.9 1]);   
                                        
                                        tmp = abs(squeeze(X.DTF(list2(k2),list1(k1),list3,2)));
                                        tmpU = abs(squeeze(X.U(list2(k2),list1(k1),list3,2)));
                                        tmpL = abs(squeeze(X.L(list2(k2),list1(k1),list3,2)));
                                        h = plot(list3,[tmp,tmpU,tmpL]);
                                        set(h(1),'color',[0.2 0.8 0.2]);
                                        set(h(2),'color',[0.8 1 0.8]);
                                        set(h(3),'color',[0.8 1 0.8]);   
                                        plot(list3,squeeze(X.DS(list1(k1),list2(k2),list3)),'.r')
                                else
                                        % 2 or 3 curves without ci
                                        tmp = abs(squeeze(X.DTF(list2(k2),list1(k1),list3,1)));
                                        h = plot(list3,abs(tmp));
                                        set(h(1),'color',[0 0 1]);  
                                        tmp = abs(squeeze(X.DTF(list2(k2),list1(k1),list3,2)));
                                        h = plot(list3,abs(tmp));
                                        set(h(1),'color',[0 1 0]); 
                                        if (size(X.DTF,4)==3)
                                                tmp = abs(squeeze(X.DTF(list2(k2),list1(k1),list3,3)));
                                                h = plot(list3,abs(tmp));
                                                set(h(1),'color',[1 0 0]);                                    
                                        end
                                end
                                hold off
                                axis([min(list3),max(list3),-0.2,1.5])
                                if isfield(X,'ElectrodeName'),
                                        if k1==1,
                                                y=ylabel(X.ElectrodeName(list2(k2)));
                                                set(y,'FontSize',6);
                                        end;
                                        if k2==1,
                                                t = title(X.ElectrodeName(list1(k1)));
                                                set(t,'FontSize',6);
                                        end;
                                end;
                                set(s,'FontSize',6); 
                        end;
                end                           
                suptitle(DTF')
                
        elseif length(size(X.DTF))==4,
                if nargin<2,
                        list1=1:size(X.DTF,1);
                        list2=1:size(X.DTF,2);
                        list3=1:size(X.DTF,3);
                else
                        list1=arg2;
                        list2=arg3;
                        list3=arg4';
                end;
                
                M = size(X.DTF,1);
                for k1 = 1:length(list1);
                        for k2 = 1:length(list2);
                                s = subplot(length(list2),length(list1),k1+(k2-1)*length(list1));
                                tmp = abs(squeeze(X.DTF(list2(k2),list1(k1),list3,:)));
                                [a,b] = meshgrid(X.t,list3);
                                mesh(a,b,abs(tmp));
                                v = axis; v(5:6)=[0,1]; axis(v);
                                xlabel('Time','FontSize',6);
                                ylabel('Freq','FontSize',6);
                                set(s,'FontSize',6);
                                if isfield(X,'ElectrodeName'),
                                        if k1==1,
                                                y=ylabel(X.ElectrodeName(list2(k2)));
                                                set(y,'FontSize',6);
                                        end;
                                        if k2==1,
                                                t = title(X.ElectrodeName(list1(k1)));
                                                set(t,'FontSize',6);
                                        end;
                                end;                
                        end;
                end;
                suptitle('Time-varying DTF')
                figure;
                for k1 = 1:length(list1);
                        for k2 = 1:length(list2);
                                s = subplot(length(list2),length(list1),k1+(k2-1)*length(list1));
                                tmp = abs(squeeze(X.DTF(list2(k2),list1(k1),list3,:)));
                                imagesc(X.t,list3,tmp,[0 1]);
                                axis([min(X.t) max(X.t) min(list3) max(list3)])
                                xlabel('Time','FontSize',5);
                                ylabel('Freq','FontSize',5);
                                set(s,'YDir','normal','FontSize',5);
                                c = colorbar;
                                set(c,'FontSize',5);
                                if isfield(X,'ElectrodeName'),
                                        if k1==1,
                                                y=ylabel(X.ElectrodeName(list2(k2)));
                                                set(y,'FontSize',6);
                                        end;
                                        if k2==1,
                                                t = title(X.ElectrodeName(list1(k1)));
                                                set(t,'FontSize',6);
                                        end;
                                end;                
                                %end
                        end
                end
                suptitle('Time-varying DTF')
                
        elseif length(size(X.DTF))==5,
                [M1,M2,M3,M4,M5] = size(X.DTF);
                load cmap;
                for k1 = 1:length(list1);
                        for k2 = 1:length(list2);
                                colormap(cmap);
                                s = subplot(length(list2),length(list1),k1+(k2-1)*length(list1));
                                imagesc(squeeze(X.DS(list2(k2),list1(k1),:,:)),[-1,1]);
                                xlabel('Time','FontSize',5);
                                ylabel('Freq','FontSize',5);
                                set(s,'YDir','normal','FontSize',5);
                                c = colorbar;
                                set(c,'FontSize',5);
                                if isfield(X,'ElectrodeName'),
                                        if k1==1,
                                                y=ylabel(X.ElectrodeName(list2(k2)));
                                                set(y,'FontSize',6);
                                        end;
                                        if k2==1,
                                                t = title(X.ElectrodeName(list1(k1)));
                                                set(t,'FontSize',6);
                                        end;
                                end;                    
                        end
                        
                end        
                suptitle('Significante difference of time-varying DTF')
        end;    
        
elseif strcmp(X.datatype,'MVAR-PHASE'),
        fprintf(2,'datatype "%s" is will become obsolete.\n\Use datatye = MVAR instead\n',X.datatype);
        if length(size(X.COH))==3,
                M = size(X.COH,1);
                for k1 = 1:M;
                        for k2 = 1:M;
                                subplot(M,M,k2+(k1-1)*M);
                                plot(f,unwrap(squeeze(angle(X.COH(k1,k2,:))))*180/pi);        
                                axis([0,max(X.f),-360,360])        
                        end;
                end;
                suptitle('Phase')
        elseif (length(size(X.COH))==4) & (size(X.COH,4)==2),
                M = size(X.COH,1);
                for k1 = 1:M;
                        for k2 = k1:M;
                                subplot(M,M,k2+(k1-1)*M);
                                tmp = abs(squeeze(X.COH(k1,k2,:,1)));
                                plot(X.f,unwrap(squeeze(angle(X.COH(k1,k2,:,1))))*180/pi,'b',X.f,unwrap(squeeze(angle(X.COH(k1,k2,:,2))))*180/pi,'g');        
                                axis([0,max(X.f),-360,360])        
                                if k1==1,
                                        ylabel(X.ElectrodeName{k2});
                                end;
                                if k1==k2,
                                        title(X.ElectrodeName{k2});
                                end;
                        end;
                end;
                suptitle('Phase')
        elseif length(size(X.COH))==4,
                M = size(X.COH,1);
                for k1 = 1:M;
                        for k2 = 1:M;
                                subplot(M,M,k2+(k1-1)*M);
                                plot(X.f,unwrap(squeeze(angle(X.COH(k1,k2,:))))*180/pi);        
                                %plot(X.f,[abs(tmp),tanh([atanh(tmp)*[1,1]+ones(size(tmp))*X.ci*sqrt(1/2/(min(X.N)-X.p))*[1,-1]])]);        
                                mesh(abs(tmp))
                                v = axis; v(5:6) = [-360,360]; axis(v);%axis([0,max(X.f),0,1])
                        end;
                end;
                suptitle('timevarying phase')
        end;
        
        
elseif strcmp(X.datatype,'MVAR-PDCF'),
        fprintf(2,'datatype "%s" is will become obsolete.\n\Use datatye = MVAR instead\n',X.datatype);
        if length(size(X.PDCF))==3,
                M = size(X.PDCF,1);
                for k1 = 1:M;
                        for k2 = 1:M;
                                subplot(M,M,k2+(k1-1)*M);
                                plot(f,squeeze(X.PDCF(k1,k2,:)));        
                                axis([0,max(X.f),0,1])        
                        end;
                end; tle('PDCF')
        elseif (length(size(X.PDCF))==4) & (size(X.PDCF,4)==2),
                M = size(X.PDCF,1);
                for k1 = 1:M;
                        for k2 = 1:M;
                                subplot(M,M,k2+(k1-1)*M);
                                tmp = abs(squeeze(X.PDCF(k1,k2,:,1)));
                                plot(X.f,squeeze(X.PDCF(k1,k2,:,1)),'b',X.f,squeeze(X.PDCF(k1,k2,:,2)),'g');        
                                axis([0,max(X.f),0,1])        
                                if k1==1,
                                        ylabel(X.ElectrodeName{k2});
                                end;
                                if 1==k2,
                                        title(X.ElectrodeName{k1});
                                end;
                        end;
                end;
                suptitle('PDCF')
        elseif length(size(X.PDCF))==4,
                M = size(X.PDCF,1);
                for k1 = 1:M;
                        for k2 = 1:M;
                                subplot(M,M,k2+(k1-1)*M);
                                plot(X.f,squeeze(X.PDCF(k1,k2,:)));        
                                %plot(X.f,[abs(tmp),tanh([atanh(tmp)*[1,1]+ones(size(tmp))*X.ci*sqrt(1/2/(min(X.N)-X.p))*[1,-1]])]);        
                                mesh(abs(tmp))
                                v = axis; v(5:6)=[0,1]; axis(v);%axis([0,,,max(X.f),0,1])
                        end;
                end;
                suptitle('time-varying PDCF')
        end;
        
elseif strcmp(X.datatype,'MVAR-PDC'),
        fprintf(2,'datatype "%s" is will become obsolete.\n\Use datatye = MVAR instead\n',X.datatype);
        if length(size(X.PDC))==3,
                M = size(X.PDC,1);
                for k1 = 1:M;
                        for k2 = 1:M;
                                %if k1~=k2
                                s = subplot(M,M,k2+(k1-1)*M);
                                tmp = abs(squeeze(X.PDC(k1,k2,:)));
                                if isfield(X,'ci'),
                                        if isfield(X,'p'),
                                                h = plot(X.f,[abs(tmp),tanh([atanh(tmp)*[1,1]+ones(size(tmp))*X.ci*sqrt(1/2/(min(X.N)-X.p))*[1,-1]])]);        
                                        else
                                                h = plot(X.f,[abs(tmp),tanh(atanh(tmp)+X.ci/(sqrt(X.N))),tanh(atanh(tmp)-X.ci/(sqrt(X.N)))]);  
                                        end
                                        set(h(2),'color',[0 0.8 1]);
                                        set(h(3),'color',[0 0.8 1]);                     
                                        set(h(1),'color',[0 0 1]);
                                        axis([0,max(X.f),-0.5,1.2])

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -