Fig_1c.m 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. load('data_fig_1c.db','-mat');
  2. ecp=bsxfun(@rdivide,bsxfun(@minus,eeghp.ecL.p,nanmean(eeghp.ecL.p)),nanmean(amp.ecL.p));
  3. ecm=bsxfun(@rdivide,bsxfun(@minus,eeghp.ecL.m,nanmean(eeghp.ecL.m)),nanmean(amp.ecL.m));
  4. egp=bsxfun(@rdivide,bsxfun(@minus,eeg.ecL.p,nanmean(eeg.ecL.p)),nanmean(amp.ecL.p));
  5. egm=bsxfun(@rdivide,bsxfun(@minus,eeg.ecL.m,nanmean(eeg.ecL.m)),nanmean(amp.ecL.m));
  6. %%
  7. ks=20;
  8. sel=4801:14400;
  9. aux=ecp(sel,:);
  10. [idx,Cp]=kmeans(aux',ks);
  11. aux=ecm(sel,:);
  12. [idxm,Cm]=kmeans(aux',ks);
  13. %%
  14. close all;
  15. f=figure;
  16. pp=zeros(19201,ks);
  17. pm=pp;
  18. for j=1:ks
  19. pp(:,j)=mean(ecp(:,idx==j),2);
  20. pm(:,j)=mean(ecm(:,idxm==j),2);
  21. end
  22. C=corr(pp(sel(2401:4800),:),pm(sel(2401:4800),:));
  23. C(1:ks+1:end)=-1;
  24. nsp=8;
  25. fp=zeros(1,nsp);
  26. fm=fp;
  27. phm=fp;
  28. for j=1:nsp
  29. [mC,rw]=max(C);
  30. [~,cl]=max(mC);
  31. rw=rw(cl);
  32. fp(j)=rw;
  33. fm(j)=cl;
  34. C(:,cl)=-1;
  35. C(rw,:)=-1;
  36. phm(j)=angle(mean(exp(1i*phase.ecL.m(9601,bsxfun(@eq,idxm,fm(j)))),2));
  37. end
  38. [~,sindex]=sort(phm,'descend');
  39. for k=1:nsp
  40. j=sindex(k);
  41. subplot(nsp,1,k)
  42. rw=fp(j); cl=fm(j);
  43. disp([C(rw,cl),corr(pp(sel(2401:4800),rw),pm(sel(2401:4800),cl)),sum(idx==rw),sum(idxm==cl)])
  44. auxp=mean(ecp(:,idx==fp(j)),2);
  45. plot((-9600:9600)/4800,auxp,'c','LineWidth',2);
  46. hold on;
  47. auxm=mean(ecm(:,idxm==fm(j)),2);
  48. plot((-9600:9600)/4800,auxm,'b','LineWidth',2);
  49. axis([-.5 .5 1.4*[-1 1]]);
  50. set(gca,'XTick',-0.5:.5:.5,'XTickLabel',[]);
  51. golden(.3)
  52. end
  53. set(gca,'XTick',-0.5:.5:.5,'XTickLabel',-0.5:.5:.5,'FontName','Arial');