how to add zeros around a matrix?
38 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
Categorie
Scopri di più su Matrix Indexing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!