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!

