how to make zero padding?

16 Ansichten (letzte 30 Tage)
sheno39
sheno39 am 8 Okt. 2013
Kommentiert: Image Analyst am 5 Apr. 2016
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

Akzeptierte Antwort

Image Analyst
Image Analyst am 8 Okt. 2013
If you have the Image Processing Toolbox, you can use padarray().
  2 Kommentare
sheno39
sheno39 am 8 Okt. 2013
Thank You Sir.
Jie
Jie am 9 Okt. 2013
cool

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (7)

cr
cr am 8 Okt. 2013
Bearbeitet: cr am 8 Okt. 2013
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) am 8 Okt. 2013
Bearbeitet: Jos (10584) am 8 Okt. 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.

Slim Ben Ghalba
Slim Ben Ghalba am 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
  1 Kommentar
Image Analyst
Image Analyst am 15 Jul. 2014
This does not wrap the matrix with a layer of zeros on all sides like the original poster asked or like padarray() does.

Melden Sie sich an, um zu kommentieren.


Jie
Jie am 8 Okt. 2013
Bearbeitet: Jie am 8 Okt. 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.

FRANCISCO JAVIER
FRANCISCO JAVIER am 8 Okt. 2013
M=rand(2,1);
K=[zeros(2,1) M zeros(2,1)];
N=[zeros(1,3); K; zeros(1,3)];

Kiarash Ahi
Kiarash Ahi am 15 Jul. 2014
Bearbeitet: Kiarash Ahi am 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

Md. Kamal  Hossain
Md. Kamal Hossain am 5 Apr. 2016
How to add zero in a sequence
  1 Kommentar
Image Analyst
Image Analyst am 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)];

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Particle & Nuclear Physics finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by