Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.08 KB | None | 0 0
  1. function [G,n,m] = preypredator (M,ngen)
  2. %%used an if loop to determine if M is a valid square number
  3. if size(M) == size(M')
  4. disp('This matrix is square and valid')
  5. else
  6. disp('The matrix is not valid, please enter a new matrix')
  7. return;
  8. end
  9. for z=1:numel(M)
  10. if M(z)~=2 && M(z)~=1 && M(z)~=0
  11. disp('This matrix contains invalid values')
  12. end
  13. return;
  14. end
  15. if ngen<0
  16. disp('Please enter valid inputs')
  17. return;
  18. end
  19.  
  20. for gz=1:ngen
  21. for z = 1:numel(M)
  22. if z==M(i) %%middle of matrix
  23. nbor (1) = M(x-1,y-1);
  24. nbor (2) = M(x,y-1);
  25. nbor (3) = M(x+1,y-1);
  26. nbor (4) = M(x-1,y);
  27. nbor (5) = M(x,y);
  28. nbor (6) = M(x+1,y);
  29. nbor (7) = M(x-1,y+1);
  30. nbor (8) = M(x+1,y+1);
  31. nbor (9) = M(x+1,y+1);
  32. else
  33. if z==M(end,end) %%Bottom right corner
  34. nbor (1) = M(end-1,end-1);
  35. nbor (2) = M(end-1,end);
  36. nbor (3) = M(end-1,end);
  37. nbor (4) = M(end,end-1);
  38. nbor (5) = M(end,end);
  39. nbor (6) = M(end,1);
  40. nbor (7) = M(1,end-1);
  41. nbor (8) = M(1,end);
  42. nbor (9) = M(1,1);
  43. else
  44. if z==M(1,1) %%top left corner
  45. nbor (1) = M(end,end);
  46. nbor (2) = M(end,1);
  47. nbor (3) = M(end,2);
  48. nbor (4) = M(1,end);
  49. nbor (5) = M(1,1);
  50. nbor (6) = M(1,2);
  51. nbor (7) = M(2,end);
  52. nbor (8) = M(2,1);
  53. nbor (9) = M(2,2);
  54. else
  55. if z==M(end,1) %% Bottom left corner
  56. nbor (1) = M(end-1,end);
  57. nbor (2) = M(end-1,1);
  58. nbor (3) = M(end-1,2);
  59. nbor (4) = M(end,end);
  60. nbor (5) = M(end,1);
  61. nbor (6) = M(end,2);
  62. nbor (7) = M(1,end);
  63. nbor (8) = M(1,1);
  64. nbor (9) = M(1,2);
  65. else
  66. if z==M(1,end) %% Top right corner
  67. nbor (1) = M(end,end-1);
  68. nbor (2) = M(1,end-1);
  69. nbor (3) = M(end,1);
  70. nbor (4) = M(1,end-1);
  71. nbor (5) = M(1,end);
  72. nbor (6) = M(1,1);
  73. nbor (7) = M(2,end-1);
  74. nbor (8) = M(2,end);
  75. nbor (9) = M(2,1);
  76.  
  77. else %%Top row wrapping
  78. if z==M(1,y) z~=M(1,1) && z~=M(1,end);
  79. nbor (1) = M(end,2);
  80. nbor (2) = M(end,end-2);
  81. nbor (3) = M(end,end-1);
  82. nbor (4) = M(1,2);
  83. nbor (5) = M(1,end-2);
  84. nbor (6) = M(1,end-1);
  85. nbor (7) = M(2,2);
  86. nbor (8) = M(2,end-2);
  87. nbor (9) = M(2,end-1);
  88. %%Bottom row wrapping
  89. else
  90. if z==M(end,y) z~=M(end,1) && z~=M(end,end);
  91. nbor (1) = M(1,2);
  92. nbor (2) = M(1,end-2);
  93. nbor (3) = M(1,end-1);
  94. nbor (4) = M(end,2);
  95. nbor (5) = M(end,end-2);
  96. nbor (6) = M(end,end-1);
  97. nbor (7) = M(end-1,2);
  98. nbor (8) = M(end-1,end-2);
  99. nbor (9) = M(end-1,end-1);
  100. %%Left side wrapping
  101. else
  102. if z==M(x,1) z~=M(1,1) && z~=M(end,1);
  103. nbor (1) = M(2,end);
  104. nbor (2) = M(2,1);
  105. nbor (3) = M(2,2);
  106. nbor (4) = M(end-2,end);
  107. nbor (5) = M(end-2,1);
  108. nbor (6) = M(end-2,2);
  109. nbor (7) = M(end-1,end);
  110. nbor (8) = M(end-1,1);
  111. nbor (9) = M(end-1,1);
  112. %%Right side wrapping
  113. else
  114. if z==M(x,end) z~=M(1,end) && z~=M(end,end);
  115. nbor (1) = M(2,end-1);
  116. nbor (2) = M(2,end);
  117. nbor (3) = M(2,1);
  118. nbor (4) = M(end-2,end-1);
  119. nbor (5) = M(end-2,end);
  120. nbor (6) = M(end-2,1);
  121. nbor (7) = M(end-1,end-1);
  122. nbor (8) = M(end-1,end);
  123. nbor (9) = M(end-1,1);
  124. end
  125. end
  126. end
  127. end
  128. end
  129. end
  130. end
  131. end
  132. end
  133. end
  134. end
  135. %%rules 0-0-0
  136. if nbor(1)==0 && nbor(2)==0 && nbor(3)==0
  137. EV(z) = 0;
  138. elseif nbor(4)==0 && nbor(5)==0 && nbor(6)==0
  139. EV(z) = 0;
  140. elseif nbor(7)==0 && nbor(8)==0 && nbor(9)==0
  141. EV(z) =0;
  142.  
  143. % 1-0-0
  144. elseif nbor(1)==1 && nbor(2)==0 && nbor(3)==0
  145. EV(z) = 1;
  146. elseif nbor(4)==1 && nbor(5)==0 && nbor(6)==0
  147. EV(z) = 1;
  148. elseif nbor(7)==1 && nbor(8)==0 && nbor(9)==0
  149. EV(z) =1;
  150. % 0-1-0
  151. elseif nbor(1)==0 && nbor(2)==1 && nbor(3)==0
  152. EV(z) = 1;
  153. elseif nbor(4)==0 && nbor(5)==1 && nbor(6)==0
  154. EV(z) = 1;
  155. elseif nbor(7)==0 && nbor(8)==1 && nbor(9)==0
  156. EV(z) = 1;
  157. % 0-0-1
  158. elseif nbor(1)==0 && nbor(2)==0 && nbor(3)==1
  159. EV(z) = 1;
  160. elseif nbor(4)==0 && nbor(5)==0 && nbor(6)==1
  161. EV(z) = 1;
  162. elseif nbor(7)==0 && nbor(8)==0 && nbor(9)==1
  163. EV(z) = 1;
  164. % 1-1-0
  165. elseif nbor(1)==1 && nbor(2)==1 && nbor(3)==0
  166. EV(z) = 0;
  167. elseif nbor(4)==1 && nbor(5)==1 && nbor(6)==0
  168. EV(z) = 0;
  169. elseif nbor(7)==1 && nbor(8)==1 && nbor(9)==0
  170. EV(z) = 0;
  171. % 0-1-1
  172. elseif nbor(1)==0 && nbor(2)==1 && nbor(3)==1
  173. EV(z) = 0;
  174. elseif nbor(4)==0 && nbor(5)==1 && nbor(6)==1
  175. EV(z) = 0;
  176. elseif nbor(7)==0 && nbor(8)==1 && nbor(9)==1
  177. EV(z) = 0;
  178.  
  179. elseif nbor(1)==1 && nbor(2)==0 && nbor(3)==1
  180. EV(z) = 1;
  181. elseif nbor(4)==1 && nbor(5)==0 && nbor(6)==1
  182. EV(z) = 1;
  183. elseif nbor(7)==1 && nbor(8)==0 && nbor(9)==1
  184. EV(z) = 1;
  185.  
  186. elseif nbor(1)==1 && nbor(2)==1 && nbor(3)==1
  187. EV(z) = 1;
  188. elseif nbor(1)==1 && nbor(2)==1 && nbor(3)==1
  189. EV(z) = 1;
  190. elseif nbor(1)==1 && nbor(2)==1 && nbor(3)==1
  191. EV(z) = 0;
  192.  
  193. else
  194. disp('There is an error')
  195. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement