GetSpikeOutboundFlag.m 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. function [thisCLST, Time, TrialNumber] = GetSpikeOutboundFlag(thisCLST, TrialNumber, Time)
  2. rowSpike=length(thisCLST.t);
  3. thisCLST.Flag_OutboundSpk_Track=zeros(rowSpike,1);
  4. thisCLST.Flag_OutboundSpk=zeros(rowSpike,1);
  5. Time.latency=zeros(1,TrialNumber.Trial);
  6. for j=1:TrialNumber.Trial
  7. if j==1
  8. Time.latency(j)=Time.Choice(j,1)-Time.Entry(j,1);
  9. for i=1:rowSpike
  10. if (thisCLST.t(i)>=(Time.Entry(j,1)))&&(thisCLST.t(i)<Time.Choice(j,1))&&(thisCLST.SmoothingVelocity(i) > 5)
  11. thisCLST.Flag_OutboundSpk_Track(i)=j;
  12. end
  13. end
  14. elseif (j~=1) %
  15. for i=1:rowSpike
  16. if (thisCLST.t(i)>=(Time.Choice(j-1,1)+Time.LeaveRewardZone(j-1,1)))&&(thisCLST.t(i)<Time.Choice(j,1))&&(thisCLST.SmoothingVelocity(i) > 5)
  17. thisCLST.Flag_OutboundSpk_Track(i)=j;
  18. end
  19. end
  20. end
  21. end
  22. %
  23. for j=1:TrialNumber.Trial
  24. if j==1
  25. for i=1:rowSpike
  26. if (thisCLST.t(i)>=Time.Entry(j,1))&&(thisCLST.t(i)<Time.Choice(j,1))&&(thisCLST.SmoothingVelocity(i) > 5)
  27. thisCLST.Flag_OutboundSpk(i)=j;
  28. end
  29. end
  30. elseif (j~=1) %
  31. for i=1:rowSpike
  32. if (thisCLST.t(i)>=Time.Choice(j-1,1))&&(thisCLST.t(i)<Time.Choice(j,1))&&(thisCLST.SmoothingVelocity(i) > 5)
  33. thisCLST.Flag_OutboundSpk(i)=j;
  34. end
  35. end
  36. end
  37. end
  38. %% Individual
  39. thisCLST.Flag_OutboundSpk_Individual_Track=cell(1,TrialNumber.Trial);
  40. thisCLST.Flag_OutboundSpk_Individual=cell(1,TrialNumber.Trial);
  41. for j=1:TrialNumber.Trial
  42. thisCLST.Flag_OutboundSpk_Individual_Track{1,j}=logical(thisCLST.Flag_OutboundSpk_Track==j);
  43. thisCLST.Flag_OutboundSpk_Individual{1,j}=logical(thisCLST.Flag_OutboundSpk==j);
  44. end
  45. %% Total
  46. thisCLST.Flag_OutboundSpk_Odd_Total_Track{1,1}=zeros(rowSpike,1);
  47. thisCLST.Flag_OutboundSpk_Odd_Total{1,1}=zeros(rowSpike,1);
  48. % thisCLST.Flag_VM_OutboundSpk_Odd_Total{1,1}=zeros(row,1);
  49. for i=1:2:TrialNumber.Trial
  50. if ~sum(i==TrialNumber.VOID)
  51. thisCLST.Flag_OutboundSpk_Odd_Total_Track{1,1}=thisCLST.Flag_OutboundSpk_Odd_Total_Track{1,1}|thisCLST.Flag_OutboundSpk_Individual_Track{1,i};
  52. thisCLST.Flag_OutboundSpk_Odd_Total{1,1}=thisCLST.Flag_OutboundSpk_Odd_Total{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  53. % if ~sum(i==TrialNumber.VL)
  54. % thisCLST.Flag_VM_OutboundSpk_Odd_Total{1,1}=thisCLST.Flag_OutboundSpk_Odd_Total{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  55. % end
  56. end
  57. end
  58. thisCLST.Flag_OutboundSpk_Even_Total_Track{1,1}=zeros(rowSpike,1);
  59. thisCLST.Flag_OutboundSpk_Even_Total{1,1}=zeros(rowSpike,1);
  60. % thisCLST.Flag_VM_OutboundSpk_Even_Total{1,1}=zeros(row,1);
  61. for i=2:2:TrialNumber.Trial
  62. if ~sum(i==TrialNumber.VOID)
  63. thisCLST.Flag_OutboundSpk_Even_Total_Track{1,1}=thisCLST.Flag_OutboundSpk_Even_Total_Track{1,1}|thisCLST.Flag_OutboundSpk_Individual_Track{1,i};
  64. thisCLST.Flag_OutboundSpk_Even_Total{1,1}=thisCLST.Flag_OutboundSpk_Even_Total{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  65. % if ~sum(i==TrialNumber.VL)
  66. % thisCLST.Flag_VM_OutboundSpk_Even_Total{1,1}=thisCLST.Flag_OutboundSpk_Even_Total{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  67. % end
  68. end
  69. end
  70. %% B1
  71. thisCLST.Flag_OutboundSpk_Odd_B1_Track{1,1}=zeros(rowSpike,1);
  72. thisCLST.Flag_OutboundSpk_Odd_B1{1,1}=zeros(rowSpike,1);
  73. % thisCLST.Flag_VM_OutboundSpk_Odd_B1{1,1}=zeros(row,1);
  74. for i=TrialNumber.Block(1)+1:2:TrialNumber.Block(2)
  75. if ~sum(i==TrialNumber.VOID)
  76. thisCLST.Flag_OutboundSpk_Odd_B1_Track{1,1}=thisCLST.Flag_OutboundSpk_Odd_B1_Track{1,1}|thisCLST.Flag_OutboundSpk_Individual_Track{1,i};
  77. thisCLST.Flag_OutboundSpk_Odd_B1{1,1}=thisCLST.Flag_OutboundSpk_Odd_B1{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  78. % if ~sum(i==TrialNumber.VL)
  79. % thisCLST.Flag_VM_OutboundSpk_Odd_B1{1,1}=thisCLST.Flag_OutboundSpk_Odd_B1{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  80. % end
  81. end
  82. end
  83. thisCLST.Flag_OutboundSpk_Even_B1_Track{1,1}=zeros(rowSpike,1);
  84. thisCLST.Flag_OutboundSpk_Even_B1{1,1}=zeros(rowSpike,1);
  85. % thisCLST.Flag_VM_OutboundSpk_Even_B1{1,1}=zeros(row,1);
  86. for i=TrialNumber.Block(1)+2:2:TrialNumber.Block(2)
  87. if ~sum(i==TrialNumber.VOID)
  88. thisCLST.Flag_OutboundSpk_Even_B1_Track{1,1}=thisCLST.Flag_OutboundSpk_Even_B1_Track{1,1}|thisCLST.Flag_OutboundSpk_Individual_Track{1,i};
  89. thisCLST.Flag_OutboundSpk_Even_B1{1,1}=thisCLST.Flag_OutboundSpk_Even_B1{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  90. % if ~sum(i==TrialNumber.VL)
  91. % thisCLST.Flag_VM_OutboundSpk_Even_B1{1,1}=thisCLST.Flag_OutboundSpk_Even_B1{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  92. % end
  93. end
  94. end
  95. %% B2
  96. thisCLST.Flag_OutboundSpk_Odd_B2_Track{1,1}=zeros(rowSpike,1);
  97. thisCLST.Flag_OutboundSpk_Odd_B2{1,1}=zeros(rowSpike,1);
  98. % thisCLST.Flag_VM_OutboundSpk_Odd_B2{1,1}=zeros(row,1);
  99. for i=TrialNumber.Block(2)+1:2:TrialNumber.Block(3)
  100. if ~sum(i==TrialNumber.VOID)
  101. thisCLST.Flag_OutboundSpk_Odd_B2_Track{1,1}=thisCLST.Flag_OutboundSpk_Odd_B2_Track{1,1}|thisCLST.Flag_OutboundSpk_Individual_Track{1,i};
  102. thisCLST.Flag_OutboundSpk_Odd_B2{1,1}=thisCLST.Flag_OutboundSpk_Odd_B2{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  103. % if ~sum(i==TrialNumber.VL)
  104. % thisCLST.Flag_VM_OutboundSpk_Odd_B2{1,1}=thisCLST.Flag_OutboundSpk_Odd_B2{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  105. % end
  106. end
  107. end
  108. thisCLST.Flag_OutboundSpk_Even_B2_Track{1,1}=zeros(rowSpike,1);
  109. thisCLST.Flag_OutboundSpk_Even_B2{1,1}=zeros(rowSpike,1);
  110. % thisCLST.Flag_VM_OutboundSpk_Even_B2{1,1}=zeros(row,1);
  111. for i=TrialNumber.Block(2)+2:2:TrialNumber.Block(3)
  112. if ~sum(i==TrialNumber.VOID)
  113. thisCLST.Flag_OutboundSpk_Even_B2_Track{1,1}=thisCLST.Flag_OutboundSpk_Even_B2_Track{1,1}|thisCLST.Flag_OutboundSpk_Individual_Track{1,i};
  114. thisCLST.Flag_OutboundSpk_Even_B2{1,1}=thisCLST.Flag_OutboundSpk_Even_B2{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  115. % if ~sum(i==TrialNumber.VL)
  116. % thisCLST.Flag_VM_OutboundSpk_Even_B2{1,1}=thisCLST.Flag_OutboundSpk_Even_B2{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  117. % end
  118. end
  119. end
  120. %% B3
  121. thisCLST.Flag_OutboundSpk_Odd_B3_Track{1,1}=zeros(rowSpike,1);
  122. thisCLST.Flag_OutboundSpk_Odd_B3{1,1}=zeros(rowSpike,1);
  123. % thisCLST.Flag_VM_OutboundSpk_Odd_B3{1,1}=zeros(row,1);
  124. for i=TrialNumber.Block(3)+1:2:TrialNumber.Block(4)
  125. if ~sum(i==TrialNumber.VOID)
  126. thisCLST.Flag_OutboundSpk_Odd_B3_Track{1,1}=thisCLST.Flag_OutboundSpk_Odd_B3_Track{1,1}|thisCLST.Flag_OutboundSpk_Individual_Track{1,i};
  127. thisCLST.Flag_OutboundSpk_Odd_B3{1,1}=thisCLST.Flag_OutboundSpk_Odd_B3{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  128. % if ~sum(i==TrialNumber.VL)
  129. % thisCLST.Flag_VM_OutboundSpk_Odd_B3{1,1}=thisCLST.Flag_OutboundSpk_Odd_B3{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  130. % end
  131. end
  132. end
  133. thisCLST.Flag_OutboundSpk_Even_B3_Track{1,1}=zeros(rowSpike,1);
  134. thisCLST.Flag_OutboundSpk_Even_B3{1,1}=zeros(rowSpike,1);
  135. % thisCLST.Flag_VM_OutboundSpk_Even_B3{1,1}=zeros(row,1);
  136. for i=TrialNumber.Block(3)+2:2:TrialNumber.Block(4)
  137. if ~sum(i==TrialNumber.VOID)
  138. thisCLST.Flag_OutboundSpk_Even_B3_Track{1,1}=thisCLST.Flag_OutboundSpk_Even_B3_Track{1,1}|thisCLST.Flag_OutboundSpk_Individual_Track{1,i};
  139. thisCLST.Flag_OutboundSpk_Even_B3{1,1}=thisCLST.Flag_OutboundSpk_Even_B3{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  140. % if ~sum(i==TrialNumber.VL)
  141. % thisCLST.Flag_VM_OutboundSpk_Even_B3{1,1}=thisCLST.Flag_OutboundSpk_Even_B3{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  142. % end
  143. end
  144. end
  145. %% B4
  146. thisCLST.Flag_OutboundSpk_Odd_B4_Track{1,1}=zeros(rowSpike,1);
  147. thisCLST.Flag_OutboundSpk_Odd_B4{1,1}=zeros(rowSpike,1);
  148. % thisCLST.Flag_VM_OutboundSpk_Odd_B4{1,1}=zeros(row,1);
  149. for i=TrialNumber.Block(4)+1:2:TrialNumber.Block(5)
  150. if ~sum(i==TrialNumber.VOID)
  151. thisCLST.Flag_OutboundSpk_Odd_B4_Track{1,1}=thisCLST.Flag_OutboundSpk_Odd_B4_Track{1,1}|thisCLST.Flag_OutboundSpk_Individual_Track{1,i};
  152. thisCLST.Flag_OutboundSpk_Odd_B4{1,1}=thisCLST.Flag_OutboundSpk_Odd_B4{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  153. % if ~sum(i==TrialNumber.VL)
  154. % thisCLST.Flag_VM_OutboundSpk_Odd_B4{1,1}=thisCLST.Flag_OutboundSpk_Odd_B4{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  155. % end
  156. end
  157. end
  158. thisCLST.Flag_OutboundSpk_Even_B4_Track{1,1}=zeros(rowSpike,1);
  159. thisCLST.Flag_OutboundSpk_Even_B4{1,1}=zeros(rowSpike,1);
  160. % thisCLST.Flag_VM_OutboundSpk_Even_B4{1,1}=zeros(row,1);
  161. for i=TrialNumber.Block(4)+2:2:TrialNumber.Block(5)
  162. if ~sum(i==TrialNumber.VOID)
  163. thisCLST.Flag_OutboundSpk_Even_B4_Track{1,1}=thisCLST.Flag_OutboundSpk_Even_B4_Track{1,1}|thisCLST.Flag_OutboundSpk_Individual_Track{1,i};
  164. thisCLST.Flag_OutboundSpk_Even_B4{1,1}=thisCLST.Flag_OutboundSpk_Even_B4{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  165. % if ~sum(i==TrialNumber.VL)
  166. % thisCLST.Flag_VM_OutboundSpk_Even_B4{1,1}=thisCLST.Flag_OutboundSpk_Even_B4{1,1}|thisCLST.Flag_OutboundSpk_Individual{1,i};
  167. % end
  168. end
  169. end