Trying to make a "snake" matrix?

N=5;
M=9;
T=zeros(N,M);
count=0;
for i=1:N
for j=1:M
count=count+1;
T(i,j)=count;
if mod(i,2)==0
T(i,j)=fliplr(T(i,j));
end
end
end
T
I'm trying to get the even rows to go 1,2,3,4 and so on to the last column, and then on the even rows I want the elements to flip from left to right. SO far I've got a matrix that goes from 1 to the last element, and I can't seem to get the even rows to flip. Thanks!

2 comentarios

David Goodmanson
David Goodmanson el 10 de Oct. de 2016
Editada: David Goodmanson el 10 de Oct. de 2016
Hello TG, 'fliprl' is not working because you are applying it to individual matrix elements T(i,j). Since T(i,j) is just a number, fliprl gives back that same number and doesn't do anything. You need to apply fliprl to an entire row.
Tatiana Gospe
Tatiana Gospe el 10 de Oct. de 2016
Thanks!!

Iniciar sesión para comentar.

 Respuesta aceptada

Thorsten
Thorsten el 10 de Oct. de 2016

0 votos

N = 5; M = 9;
T = reshape(1:M*N, [M, N])';
T(2:2:end,:) = fliplr(T(2:2:end,:));

Más respuestas (1)

Andrei Bobrov
Andrei Bobrov el 10 de Oct. de 2016

0 votos

N=5;
M=9;
T = reshape(1:N*M,N,[]);
T(:,2:2:end) = T(end:-1:1,2:2:end);
or
T = reshape(1:N*M,M,[])';
T(2:2:end,:) = T(2:2:end,end:-1:1);

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Preguntada:

el 10 de Oct. de 2016

Respondida:

el 10 de Oct. de 2016

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by