1+
2+ function [Abinary ,Awtd ,AwtdCut ,charLagFirstPeak ,TcharLagFirstPeak ,charLagMaxPeak ,TcharLagMaxPeak ,TvsIzerocharLagMaxPeak ,nSigLags ,FirstSigLag ,LastSigLag ]=AdjMatrices(T ,SigThreshT ,TvsIzero ,lagVect )
3+
4+ % COMPUTES AN ADJACENCY MATRIX A
5+ % COMPUTES THE CHARACTERISTIC LAG WHICH IS THE FIRST SIGNIFICANT LAG
6+ % TAKES THE TRANSFER INFORMATION MATRIX AND THE SIGNIFICANCE THRESHOLDS
7+ % NOTE - This code considers ONLY POSITIVE LAGS in the computation of these matrices
8+
9+ [nSignals ,~ ,nLags ,nFiles ]=size(T );
10+ nSLags = size(SigThreshT ,3 );
11+
12+ Abinary= zeros(nSignals ,nSignals ,nLags ,nFiles );
13+ Awtd= NaN(nSignals ,nSignals ,nLags ,nFiles );
14+ AwtdCut= zeros(nSignals ,nSignals ,nLags ,nFiles );
15+ charLagFirstPeak= zeros(nSignals ,nSignals ,nFiles );
16+ TcharLagFirstPeak= zeros(nSignals ,nSignals ,nFiles );
17+ charLagMaxPeak= zeros(nSignals ,nSignals ,nFiles );
18+ TcharLagMaxPeak= zeros(nSignals ,nSignals ,nFiles );
19+ TvsIzerocharLagMaxPeak= zeros(nSignals ,nSignals ,nFiles );
20+ nSigLags= zeros(nSignals ,nSignals ,nFiles );
21+ FirstSigLag= NaN(nSignals ,nSignals ,nFiles );
22+ LastSigLag= NaN(nSignals ,nSignals ,nFiles );
23+
24+ % Find index of lag = 0
25+ l0i = find(lagVect == 0 ,1 );
26+
27+ for f= 1 : nFiles
28+ for sX= 1 : nSignals
29+ for sY= 1 : nSignals
30+
31+ FirstPeakFlag= 0 ;
32+ FirstSigFlag= 0 ;
33+
34+ Awtd= T ;
35+
36+
37+ % check 0 lag
38+ lag= l0i ;
39+
40+ % Statistical sig threshold available for 1 or all lags?
41+ if nSLags == 1
42+ lagS = 1 ;
43+ else
44+ lagS = lag ;
45+ end
46+
47+ if T(sX ,sY ,lag ,f ) > SigThreshT(sX ,sY ,lagS ,f )
48+ Abinary(sX ,sY ,lag ,f ) = 1 ;
49+ AwtdCut(sX ,sY ,lag ,f ) = T(sX ,sY ,lag ,f );
50+ LastSigLag(sX ,sY ,f )=lag ;
51+ nSigLags(sX ,sY ,f )=nSigLags(sX ,sY ,f )+1 ;
52+ charLagMaxPeak(sX ,sY ,f )=lag ;
53+ TcharLagMaxPeak(sX ,sY ,f )=T(sX ,sY ,lag ,f );
54+ TvsIzerocharLagMaxPeak(sX ,sY ,f )=TvsIzero(sX ,sY ,lag ,f );
55+ FirstSigFlag= 1 ;
56+ if nLags > 1
57+ if T(sX ,sY ,lag ,f ) > T(sX ,sY ,lag + 1 ,f )
58+ charLagFirstPeak(sX ,sY ,f )=lag ;
59+ TcharLagFirstPeak(sX ,sY ,f )=T(sX ,sY ,lag ,f );
60+ FirstPeakFlag = 1 ;
61+ end
62+ else
63+ charLagFirstPeak(sX ,sY ,f )=lag ;
64+ TcharLagFirstPeak(sX ,sY ,f )=T(sX ,sY ,lag ,f );
65+ FirstPeakFlag = 1 ;
66+ end
67+ end
68+
69+ % check the other lag
70+ if nLags > 1
71+ for lag= l0i + 1 : nLags - 1
72+
73+ % Statistical sig threshold available for 1 or all lags?
74+ if nSLags == 1
75+ lagS = 1 ;
76+ else
77+ lagS = lag ;
78+ end
79+
80+ if T(sX ,sY ,lag ,f ) > SigThreshT(sX ,sY ,lagS ,f )
81+ Abinary(sX ,sY ,lag ,f ) = 1 ;
82+ AwtdCut(sX ,sY ,lag ,f ) = T(sX ,sY ,lag ,f );
83+ LastSigLag(sX ,sY ,f )=lag ;
84+ nSigLags(sX ,sY ,f )=nSigLags(sX ,sY ,f )+1 ;
85+ if FirstSigFlag == 0
86+ FirstSigLag(sX ,sY ,f )=lag ;
87+ FirstSigFlag = 1 ;
88+ end
89+ if FirstPeakFlag == 0 && T(sX ,sY ,lag ,f ) > T(sX ,sY ,lag - 1 ,f ) && T(sX ,sY ,lag ,f ) > T(sX ,sY ,lag + 1 ,f )
90+ charLagFirstPeak(sX ,sY ,f )=lag ;
91+ TcharLagFirstPeak(sX ,sY ,f )=T(sX ,sY ,lag ,f );
92+ FirstPeakFlag = 1 ;
93+ end
94+ if T(sX ,sY ,lag ) > TcharLagMaxPeak(sX ,sY ,f )
95+ charLagMaxPeak(sX ,sY ,f )=lag ;
96+ TcharLagMaxPeak(sX ,sY ,f )=T(sX ,sY ,lag ,f );
97+ TvsIzerocharLagMaxPeak(sX ,sY ,f )=TvsIzero(sX ,sY ,lag ,f );
98+ end
99+ end
100+ end
101+
102+ % check the last lag
103+ lag= nLags ;
104+
105+ % Statistical sig threshold available for 1 or all lags?
106+ if nSLags == 1
107+ lagS = 1 ;
108+ else
109+ lagS = lag ;
110+ end
111+
112+ if T(sX ,sY ,lag ,f ) > SigThreshT(sX ,sY ,lagS ,f )
113+ Abinary(sX ,sY ,lag ,f ) = 1 ;
114+ AwtdCut(sX ,sY ,lag ,f ) = T(sX ,sY ,lag ,f );
115+ LastSigLag(sX ,sY ,f )=lag ;
116+ nSigLags(sX ,sY ,f )=nSigLags(sX ,sY ,f )+1 ;
117+ if FirstSigFlag == 0
118+ FirstSigLag(sX ,sY ,f )=lag ;
119+ FirstSigFlag = 1 ;
120+ end
121+ if FirstPeakFlag == 0 && T(sX ,sY ,lag ,f ) > T(sX ,sY ,lag - 1 ,f )
122+ charLagFirst(sX ,sY ,f )=lag ;
123+ TcharLagFirst(sX ,sY ,f )=T(sX ,sY ,lag ,f );
124+ FirstPeakFlag = 1 ;
125+ end
126+ if T(sX ,sY ,lag ,f ) > TcharLagMaxPeak(sX ,sY ,f )
127+ charLagMaxPeak(sX ,sY ,f )=lag ;
128+ TcharLagMaxPeak(sX ,sY ,f )=T(sX ,sY ,lag ,f );
129+ TvsIzerocharLagMaxPeak(sX ,sY ,f )=TvsIzero(sX ,sY ,lag ,f );
130+ end
131+ end
132+ end
133+ end
134+ end
135+ end
0 commit comments