Trying to make a 6x6 checkerboard matrix using for loops and no if statements. trying to get my code down to 7 lines instead of 8.
    6 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Mary Jean Savitsky
 el 29 de Sept. de 2020
  
    
    
    
    
    Comentada: Ameer Hamza
      
      
 el 30 de Sept. de 2020
            Trying to get the bolded code consolodated into 7 lines instead of 8 in order to make a 6x6 checkerboard matrix. I feel like somehow i can nest together all three for loops and only have one line for A()=a
n=6;
a=1;
A=zeros(n,n);
for i=1:2:n-1 %rows 1,3,5
    for j=1:2:n %columns 1,3,5 
        A(i,j)=a;
    end
    for k=2:2:n %columns 2,4,6
         A(i+1,k)=a;
     end
end
 display(A)
0 comentarios
Respuesta aceptada
  Ameer Hamza
      
      
 el 29 de Sept. de 2020
        
      Editada: Ameer Hamza
      
      
 el 30 de Sept. de 2020
  
      You can create it like this
n=6;
a=1;
A = zeros(n);
for i = 2:2:n
    A = A + circshift(eye(n), i);
end
Result
>> A
A =
     1     0     1     0     1     0
     0     1     0     1     0     1
     1     0     1     0     1     0
     0     1     0     1     0     1
     1     0     1     0     1     0
     0     1     0     1     0     1
Within only 7 lines with thre for loops:
n=6;
a=1;
A=zeros(n,n);
for i=1:n % all rows
    for j=1:2:n %columns 1,3,5
        for k=2:2:n %columns 2,4,6
            A(i, (mod(i,2)==1)*j+(mod(i,2)==0)*k) = a;
        end
    end
end
disp(A)
2 comentarios
  Ameer Hamza
      
      
 el 30 de Sept. de 2020
				Check the updated answer. It shows a weird way to create this matrix with 3 "for", 3 "end" and only one line of code.
Más respuestas (0)
Ver también
Categorías
				Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

