how to add zeros around a matrix?
22 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
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!