How Zero padding inside a matrix ?

1 vue (au cours des 30 derniers jours)
So
So le 17 Mai 2016
Commenté : Star Strider le 17 Mai 2016
Hello, how can i zero pad inside a matrix ? For example :
if true
% code
end
A = [ 1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16]
And i want
A = [ 1 2 3 4
5 6 7 8
0 0 0 0
0 0 0 0
......
0 0 0 0
0 0 0 0
9 10 11 12
13 14 15 16]
I know padarray can zero pad but only outside not in the inside.. Thank you.

Réponse acceptée

Star Strider
Star Strider le 17 Mai 2016
Create a second matrix of zeros, then assign the appropriate rows of your first matrix to the rows you want in the second matrix:
A = [ 1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16];
Desired_Rows = 10; % Pick A Number
B = zeros(Desired_Rows, size(A,2));
B([1:2 end-1:end],:) = A
B =
1 2 3 4
5 6 7 8
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
9 10 11 12
13 14 15 16
  6 commentaires
Guillaume
Guillaume le 17 Mai 2016
In my opinion, it'd be simpler to split the original matrix and insert a zero matrix in between: B = [A(1:10, :); zeros(40, size(A, 2); A(11:20, :)]
Star Strider
Star Strider le 17 Mai 2016
I thought about that, but considered that this could be a ‘proxy problem’ and the rows could end up being inserted anywhere in the target matrix, not just at the ends. The approach I took allows for that more easily.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by