how to add zeros around a matrix?

for example i have a matrix A = [1 2 3; 2 3 4; 5 6 7] I am working on image processing and I want to add zeros around this matrix like below. How can i do that?
0 0 0 0 0
0 1 2 3 0
0 2 3 4 0
0 5 6 7 0
0 0 0 0 0

 Accepted Answer

>> conv2(A,[0,0,0;0,1,0;0,0,0])
ans =
0 0 0 0 0
0 1 2 3 0
0 2 3 4 0
0 5 6 7 0
0 0 0 0 0

5 Comments

thank u so much for answer. for example think a picture I = imread('pic.png'); Ig = rgb2gray(I); can i use this method for this Ig matrix;
The conv2 help states the inputs must be vectors or matrices. As long as Ig is a matrix then it should work.
thank u so much again :) can i ask something else ? if i want to write a for loop like
for(i=0 : 1: 5 && j=0 :1 : 5) matlab is allow that or not ?
It is not clear what you would expect the result to be. MATLAB does not currently have a syntax for looping over two variables at once. You could define the loop to be an index and use that to select elements from those vectors:
iV = 0:1:5;
jV = 0:1:5;
for k = 1:numel(iV)
iN = iV(k);
jN = jV(k);
end
Hi. How can I use this method for non-square matrix? For example creating a border for 1000x1500 matrix.

Sign in to comment.

More Answers (3)

newA = zeros(size(A)+2);
newA(2:end-1,2:end-1)=A
Andrei Bobrov
Andrei Bobrov on 22 Nov 2017
Edited: Andrei Bobrov on 22 Nov 2017
padarray(A,[1 1],0)

2 Comments

Note: requires the image toolbox.
While padarray() requires IPT, MIMT has padarrayFB(), which uses, but does not require IPT. That's a possibility for those who don't have IPT. ... but then MIMT also has other options for adding borders to images.

Sign in to comment.

noam gridish
noam gridish on 12 Mar 2024
% create bigger mat of zeros
[m,n]=size(A);
paded_mat=zeros(m+1,n+1);
paded_mat(2:end-1,2:end-1)=A;
A=paded_mat;

1 Comment

Have you tested this? I ask because it will throw an error. Your preallocated array is too small.

Sign in to comment.

Asked:

on 22 Nov 2017

Commented:

DGM
on 13 Mar 2024

Community Treasure Hunt

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

Start Hunting!