how to add zeros around a matrix?
27 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Mucahid Akyar
el 22 de Nov. de 2017
Comentada: DGM
el 13 de Mzo. de 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
0 comentarios
Respuesta aceptada
Stephen23
el 22 de Nov. de 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 comentarios
Stephen23
el 22 de Nov. de 2017
Editada: Stephen23
el 22 de Nov. de 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
el 30 de Abr. de 2021
Hi. How can I use this method for non-square matrix? For example creating a border for 1000x1500 matrix.
Más respuestas (3)
Andrei Bobrov
el 22 de Nov. de 2017
Editada: Andrei Bobrov
el 22 de Nov. de 2017
padarray(A,[1 1],0)
2 comentarios
DGM
el 16 de Jul. de 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.
noam gridish
el 12 de Mzo. de 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 comentario
DGM
el 13 de Mzo. de 2024
Have you tested this? I ask because it will throw an error. Your preallocated array is too small.
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!