how to make zero padding?
Afficher commentaires plus anciens
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
Réponse acceptée
Plus de réponses (7)
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)
le 8 Oct 2013
Modifié(e) : Jos (10584)
le 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.
Slim Ben Ghalba
le 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 commentaire
Image Analyst
le 15 Juil 2014
This does not wrap the matrix with a layer of zeros on all sides like the original poster asked or like padarray() does.
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
le 8 Oct 2013
0 votes
M=rand(2,1);
K=[zeros(2,1) M zeros(2,1)];
N=[zeros(1,3); K; zeros(1,3)];
Kiarash Ahi
le 15 Juil 2014
Modifié(e) : Kiarash Ahi
le 15 Juil 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
le 5 Avr 2016
0 votes
How to add zero in a sequence
1 commentaire
Image Analyst
le 5 Avr 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)];
Catégories
En savoir plus sur Waveform Generation dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!