Creating a "triangular" matrix

2 visualizzazioni (ultimi 30 giorni)
Radhika Kulkarni
Radhika Kulkarni il 9 Feb 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 Commenti
Walter Roberson
Walter Roberson il 9 Feb 2021
Numeric matrices can never have empty holes.
Radhika Kulkarni
Radhika Kulkarni il 9 Feb 2021
Can it be done if there are 0's in the empty cells?

Accedi per commentare.

Risposte (1)

Walter Roberson
Walter Roberson il 9 Feb 2021
B = reshape([A;zeros(size(A))], size(A, 1),[]);
B(1:2:end, 2:end) = B(1:2:end, 1:end-1) ;
  2 Commenti
Radhika Kulkarni
Radhika Kulkarni il 9 Feb 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 il 9 Feb 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;

Accedi per commentare.

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by