how to make zero padding?

60 ビュー (過去 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)];

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeCorrelation and Convolution についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by