📄 plota.m
字号:
%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 + -