how to make zero padding?

조회 수: 90 (최근 30일)
sheno39
sheno39 2013년 10월 8일
댓글: Image Analyst 2016년 4월 5일
can anyone help me to make zero padding for a 4x3 matrix. i have to add a row of zeros in the top,bottom, left and right side of the matrix

채택된 답변

Image Analyst
Image Analyst 2013년 10월 8일
If you have the Image Processing Toolbox, you can use padarray().
  댓글 수: 2
sheno39
sheno39 2013년 10월 8일
Thank You Sir.
Jie
Jie 2013년 10월 9일
cool

댓글을 달려면 로그인하십시오.

추가 답변 (7개)

cr
cr 2013년 10월 8일
편집: cr 2013년 10월 8일
m = [zeros(1,size(m,2)+2); [zeros(size(m,1),1), m, zeros(size(m,1),1)]; zeros(1,size(m,2)+2)];
or even simpler, but needs creating a temp variable:
tmp = zeros(size(m)+2);
tmp(2:end-1,2:end-1) = m;
m = tmp;
Cheers.

Jos (10584)
Jos (10584) 2013년 10월 8일
편집: Jos (10584) 2013년 10월 8일
Pad a matrix M with N zeros to all sides using indexing (neither trivial nor boring):
M = ceil(10*rand(3,4))
N = 2
if N > 0
M(end+2*N,end+2*N) = 0
M = M([end-N+1:end 1:end-N], [end-N+1:end 1:end-N])
end
If you have the image toolbox, take a look at PADARRAY.

Slim Ben Ghalba
Slim Ben Ghalba 2013년 11월 21일
a smarter and simpler way. here is an example for zero-padding with 4:
>> a=zeros(1,12)
a =
0 0 0 0 0 0 0 0 0 0 0 0
>> a(1:4:end)=1
a =
1 0 0 0 1 0 0 0 1 0 0 0
  댓글 수: 1
Image Analyst
Image Analyst 2014년 7월 15일
This does not wrap the matrix with a layer of zeros on all sides like the original poster asked or like padarray() does.

댓글을 달려면 로그인하십시오.


Jie
Jie 2013년 10월 8일
편집: Jie 2013년 10월 8일
function out_put =adpadding(in_put)
% just wish you matrix size is not too large
[n m]=size(in_put);
A=['a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm' 'n' 'o' ];
B=1:20;
xlswrite('addapaddle.xls',0,'sheet1','a1');
str1=[A(m+2), num2str(B(n+2))];
xlswrite('addapaddle.xls',0,'sheet1',str1);
str2=['b2:' A(m+1), num2str(B(n+1))];
xlswrite('addapaddle.xls',in_put,'sheet1',str2);
str3=['a1:' str1];
out_put=xlsread('addapaddle.xls','sheet1',str3);
out_put(isnan(out_put))=0;
delete('addapaddle.xls')
could take some time, but save much effort regarding the mat size. I think the string part could be optimized somehow, but i just don't know how. Also u can try some simple but boring methods. like
a(1,2:end-1)=ones(1,size(a,2)-1)
or the alike.

FRANCISCO JAVIER
FRANCISCO JAVIER 2013년 10월 8일
M=rand(2,1);
K=[zeros(2,1) M zeros(2,1)];
N=[zeros(1,3); K; zeros(1,3)];

Kiarash Ahi
Kiarash Ahi 2014년 7월 15일
편집: Kiarash Ahi 2014년 7월 15일
Try this as well:
function kp=padding(k)
[M N]=size(k);
for n=1:2:N
k(:,n)=0
end
end

Md. Kamal  Hossain
Md. Kamal Hossain 2016년 4월 5일
How to add zero in a sequence
  댓글 수: 1
Image Analyst
Image Analyst 2016년 4월 5일
If the sequence is stored in a vector, and index is the location where you want to add/insert the zeros:
newVec = [vec(1:index-1), 0, vec(index:end)];

댓글을 달려면 로그인하십시오.

태그

Community Treasure Hunt

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

Start Hunting!

Translated by