im trying to do it using zero(16) and plussing 1's in certain coordinates, or i could use meshgrid too mesh them together, not sure how i want to do it.
How to create a checkerboard matrix without inbuilt function.
84 views (last 30 days)
Show older comments
I just want to write this matrix, but want to do it using for loops
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Accepted Answer
Joseph Cheng
on 12 Sep 2017
There are much easier ways to do this than nested for loops, reshape is readily available. if you must do it with for loops you want to start off with the template
for Rind=1:Nrows
for Cind=1:Ncols
Checkerboard(Rind,Cind) = ___;%what condition of Rind and Cind gives you the checker board pattern.
%start with the first row what makes a 1 appear when Rind==1 and Cind=a number.
%then think of the sigificant difference between Rind==1 and Rind==2.....
end
end
0 Comments
More Answers (4)
ksam K
on 25 Nov 2017
%Hope this helps you.
function a = checkerboard(n)
a = zeros(n);
for i = 1:n
for j = 1:n
if (i == j)
a (i, j) = 0;
elseif (mod(j, 2) == 0) && (mod(i,2) == 0)
a(i,j) = 0;
elseif (mod(j, 2) == 0) || (mod(i,2) == 0)
a(i,j) = 1;
end
end
end
end
Jan Siegmund
on 21 May 2020
For an even sized checkerboard:
rows = 6;
cols = 4;
normal = repmat(eye(2,'logical'),[rows/2 cols/2]);
% or
inverted = repmat(~eye(2,'logical'),[rows/2 cols/2]);
0 Comments
Mendi
on 5 Sep 2020
It is more natural to use modulus on meshgrid:
[iX,iY] = meshgrid(1:8,1:8);
Mask=mod(iX+iY,2);
2 Comments
Bruno Luong
on 5 Sep 2020
Edited: Bruno Luong
on 5 Sep 2020
Two more methods
toeplitz(mod(0:7,2))
or for even size
kron(ones(4),[0 1;1 0])
0 Comments
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!