How Zero padding inside a matrix ?
    2 次查看(过去 30 天)
  
       显示 更早的评论
    
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.
0 个评论
采纳的回答
  Star Strider
      
      
 2016-5-17
        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 个评论
  Guillaume
      
      
 2016-5-17
				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
      
      
 2016-5-17
				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.
更多回答(0 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

