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.
34 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
Réponse acceptée
Joseph Cheng
le 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 commentaires
Plus de réponses (4)
ksam K
le 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
le 21 Mai 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 commentaires
Mendi
le 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 commentaires
Bruno Luong
le 5 Sep 2020
Modifié(e) : Bruno Luong
le 5 Sep 2020
Two more methods
toeplitz(mod(0:7,2))
or for even size
kron(ones(4),[0 1;1 0])
0 commentaires
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!