how to add zeros around a matrix?

51 vues (au cours des 30 derniers jours)
Mucahid Akyar
Mucahid Akyar le 22 Nov 2017
Commenté : DGM le 13 Mar 2024
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

Réponse acceptée

Stephen23
Stephen23 le 22 Nov 2017
>> 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 commentaires
Stephen23
Stephen23 le 22 Nov 2017
Modifié(e) : Stephen23 le 22 Nov 2017
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
Eren Ozcelik
Eren Ozcelik le 30 Avr 2021
Hi. How can I use this method for non-square matrix? For example creating a border for 1000x1500 matrix.

Connectez-vous pour commenter.

Plus de réponses (3)

KL
KL le 22 Nov 2017
newA = zeros(size(A)+2);
newA(2:end-1,2:end-1)=A
  1 commentaire
Medyan
Medyan le 16 Sep 2022
Thx man.

Connectez-vous pour commenter.


Andrei Bobrov
Andrei Bobrov le 22 Nov 2017
Modifié(e) : Andrei Bobrov le 22 Nov 2017
padarray(A,[1 1],0)
  2 commentaires
Stephen23
Stephen23 le 22 Nov 2017
Note: requires the image toolbox.
DGM
DGM le 16 Juil 2022
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.

Connectez-vous pour commenter.


noam gridish
noam gridish le 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 commentaire
DGM
DGM le 13 Mar 2024
Have you tested this? I ask because it will throw an error. Your preallocated array is too small.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by