How to add a first row and a first column of zeros in a matrix?

8 vues (au cours des 30 derniers jours)
P_M_Cap
P_M_Cap le 14 Fév 2022
Modifié(e) : Simon Dengler le 14 Fév 2022
hi,
i have a matrix, for example
A=[1 2 3; 4 5 6; 7 8 9]
A = 3×3
1 2 3 4 5 6 7 8 9
how can i add a first row of zeros and a first colum of zeros to reach the following results?
B=[0 0 0 0; 0 1 2 3; 0 4 5 6; 0 7 8 9]
B = 4×4
0 0 0 0 0 1 2 3 0 4 5 6 0 7 8 9
and how can i delete the last row and the last column of a matrix to reach this second results?
C=[0 0 0; 0 1 2; 0 4 5]
C = 3×3
0 0 0 0 1 2 0 4 5
thank you very much matlab users!

Réponse acceptée

Arif Hoq
Arif Hoq le 14 Fév 2022
A=[1 2 3; 4 5 6; 7 8 9];
AA=[zeros(1,3);A];
AAA=zeros(4,1);
B=[AAA AA];
B(:,end)=[];
B(end,:)=[]
B = 3×3
0 0 0 0 1 2 0 4 5

Plus de réponses (2)

Star Strider
Star Strider le 14 Fév 2022
The easiest way is to create an appropriate zeros matrix and just index into it —
A=[1 2 3; 4 5 6; 7 8 9];
B = zeros(size(A,1)+1,size(A,2)+1);
B(2:end,2:end) = A
B = 4×4
0 0 0 0 0 1 2 3 0 4 5 6 0 7 8 9
C = B(1:end-1,1:end-1)
C = 3×3
0 0 0 0 1 2 0 4 5
Four lines of code to do everything!
.

Simon Dengler
Simon Dengler le 14 Fév 2022
Modifié(e) : Simon Dengler le 14 Fév 2022
bit more general and faster?
A=[1 2 3; 4 5 6; 7 8 9];
A = 3×3
1 2 3 4 5 6 7 8 9
B=zeros(size(A)+1);
B(2:end,2:end)=A
B = 4×4
0 0 0 0 0 1 2 3 0 4 5 6 0 7 8 9

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by