how to add zeros around a matrix?

40 Ansichten (letzte 30 Tage)
Mucahid Akyar
Mucahid Akyar am 22 Nov. 2017
Kommentiert: DGM am 13 Mär. 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

Akzeptierte Antwort

Stephen23
Stephen23 am 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 Kommentare
Stephen23
Stephen23 am 22 Nov. 2017
Bearbeitet: Stephen23 am 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 am 30 Apr. 2021
Hi. How can I use this method for non-square matrix? For example creating a border for 1000x1500 matrix.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

KL
KL am 22 Nov. 2017
newA = zeros(size(A)+2);
newA(2:end-1,2:end-1)=A

Andrei Bobrov
Andrei Bobrov am 22 Nov. 2017
Bearbeitet: Andrei Bobrov am 22 Nov. 2017
padarray(A,[1 1],0)
  2 Kommentare
Stephen23
Stephen23 am 22 Nov. 2017
Note: requires the image toolbox.
DGM
DGM am 16 Jul. 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.

Melden Sie sich an, um zu kommentieren.


noam gridish
noam gridish am 12 Mär. 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 Kommentar
DGM
DGM am 13 Mär. 2024
Have you tested this? I ask because it will throw an error. Your preallocated array is too small.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by