how to add zeros around a matrix?

39 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.

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by