how to add zeros around a matrix?
27 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Stephen23
il 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 Commenti
Stephen23
il 22 Nov 2017
Modificato: Stephen23
il 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
il 30 Apr 2021
Hi. How can I use this method for non-square matrix? For example creating a border for 1000x1500 matrix.
Più risposte (3)
Andrei Bobrov
il 22 Nov 2017
Modificato: Andrei Bobrov
il 22 Nov 2017
padarray(A,[1 1],0)
2 Commenti
DGM
il 16 Lug 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
il 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 Commento
DGM
il 13 Mar 2024
Have you tested this? I ask because it will throw an error. Your preallocated array is too small.
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!