How Zero padding inside a matrix ?
조회 수: 3 (최근 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에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!