How to add lower triangle of zeros/indent to each row, in a matrix?

2 visualizzazioni (ultimi 30 giorni)
I have this matrix:
1 2 3 4 5 6 7 8 5 5
3 3 3 3 3 4 4 4 5 5
1 4 3 4 3 4 4 4 5 5
3 3 3 3 4 4 4 5 5 5
And I want this as the result:
1 2 3 4 5 6 7 8 5 5 0 0 0
0 3 3 3 3 3 4 4 4 5 5 0 0
0 0 1 4 3 4 3 4 4 4 5 5 0
0 0 0 3 3 3 3 4 4 4 5 5 5
How can I do this as a script?
Please help
Thank you
  1 Commento
Catalytic
Catalytic il 25 Apr 2021
It appears that you have not Accept-clicked any of the answers you have been given to your other questions.
Were they all unhelpful?

Accedi per commentare.

Risposta accettata

Matt J
Matt J il 25 Apr 2021
Modificato: Matt J il 25 Apr 2021
B=[1 2 3 4 5 6 7 8 5 5
3 3 3 3 3 4 4 4 5 5
1 4 3 4 3 4 4 4 5 5
3 3 3 3 4 4 4 5 5 5];
[m,n]=size(B);
result=spdiags(B,0:n-1,m,n+m-1);
full(result)
ans = 4×13
1 2 3 4 5 6 7 8 5 5 0 0 0 0 3 3 3 3 3 4 4 4 5 5 0 0 0 0 1 4 3 4 3 4 4 4 5 5 0 0 0 0 3 3 3 3 4 4 4 5 5 5
  3 Commenti
Matt J
Matt J il 25 Apr 2021
You're quite welcome, but please Accept-click the answer to indicate that it resolved the problem.

Accedi per commentare.

Più risposte (0)

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