Asked by sheno39
on 8 Oct 2013

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

Answer by Image Analyst
on 8 Oct 2013

Accepted Answer

If you have the Image Processing Toolbox, you can use padarray().

Answer by Slim Ben Ghalba
on 21 Nov 2013

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

Image Analyst
on 15 Jul 2014

Sign in to comment.

Answer by Jie
on 8 Oct 2013

Edited by Jie
on 8 Oct 2013

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.

Sign in to comment.

Answer by Jos (10584)
on 8 Oct 2013

Edited by Jos (10584)
on 8 Oct 2013

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.

Sign in to comment.

Answer by FRANCISCO JAVIER
on 8 Oct 2013

M=rand(2,1);

K=[zeros(2,1) M zeros(2,1)];

N=[zeros(1,3); K; zeros(1,3)];

Sign in to comment.

Answer by Kiarash Ahi
on 15 Jul 2014

Edited by Kiarash Ahi
on 15 Jul 2014

Try this as well:

function kp=padding(k)

[M N]=size(k);

for n=1:2:N

k(:,n)=0

end

end

Sign in to comment.

Answer by Md. Kamal Hossain
on 5 Apr 2016

How to add zero in a sequence

Image Analyst
on 5 Apr 2016

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)];

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.