how to add zeros around a matrix?
27 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Stephen23
2017-11-22
>> 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 个评论
Stephen23
2017-11-22
编辑:Stephen23
2017-11-22
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
2021-4-30
Hi. How can I use this method for non-square matrix? For example creating a border for 1000x1500 matrix.
更多回答(3 个)
Andrei Bobrov
2017-11-22
编辑:Andrei Bobrov
2017-11-22
padarray(A,[1 1],0)
2 个评论
DGM
2022-7-16
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
2024-3-12
% 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 个评论
DGM
2024-3-13
Have you tested this? I ask because it will throw an error. Your preallocated array is too small.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!