Creating a "triangular" matrix

6 visualizaciones (últimos 30 días)
Radhika Kulkarni
Radhika Kulkarni el 9 de Feb. de 2021
Comentada: Walter Roberson el 9 de Feb. de 2021
Hello,
I have a 17 x 75 matrix A, and have created a copy of the same matrix (B) for making changes. I want to manipulate this matrix by adding a column of 0's in between each column now. Furthermore, I want to shift the numbers in the ODD rows to the right by 1. In the end, I will have a "triangular" matrix. I have added a picture for visual reference.
Any help would be appreciated.
  2 comentarios
Walter Roberson
Walter Roberson el 9 de Feb. de 2021
Numeric matrices can never have empty holes.
Radhika Kulkarni
Radhika Kulkarni el 9 de Feb. de 2021
Can it be done if there are 0's in the empty cells?

Iniciar sesión para comentar.

Respuestas (1)

Walter Roberson
Walter Roberson el 9 de Feb. de 2021
B = reshape([A;zeros(size(A))], size(A, 1),[]);
B(1:2:end, 2:end) = B(1:2:end, 1:end-1) ;
  2 comentarios
Radhika Kulkarni
Radhika Kulkarni el 9 de Feb. de 2021
Hi Walter, thank you for your quick response! May I know why the numbers repeat on the first and and second column for the ODD rows? Is there a way to have the first number be 0 so there aren't repeats?
Walter Roberson
Walter Roberson el 9 de Feb. de 2021
Oh, right, I forgot to account for that.
B = reshape([A;zeros(size(A))], size(A, 1),[]);
B(1:2:end, 2:end) = B(1:2:end, 1:end-1);
B(1:2:end, 1) = 0;

Iniciar sesión para comentar.

Categorías

Más información sobre Logical 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!

Translated by