Creating a "triangular" matrix

2 次查看(过去 30 天)
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 个评论
Walter Roberson
Walter Roberson 2021-2-9
Numeric matrices can never have empty holes.
Radhika Kulkarni
Radhika Kulkarni 2021-2-9
Can it be done if there are 0's in the empty cells?

请先登录,再进行评论。

回答(1 个)

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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by