实现矩阵填充的最佳方法

Sch*_*ges 0 matlab matrix padding

我正在尝试在边框处用填充零的矩阵填充最靠近边界的像素值,例如:

A = rand(5);
Z = zeros(9);
Z(3:7, 3:7) = A;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

现在我想通过以下方式完成矩阵边框:

在此输入图像描述

我正在寻找一个没有任何for循环的好解决方案

编辑:

它应该如下所示:

在此输入图像描述

cha*_*pjc 5

你想要padarray'replicate'选择.例如,要在所有方面复制2x2边框,

>> A = [1 2; 3 4];
>> B = padarray(A,[2 2],'replicate','both')
B =
     1     1     1     2     2     2
     1     1     1     2     2     2
     1     1     1     2     2     2
     3     3     3     4     4     4
     3     3     3     4     4     4
     3     3     3     4     4     4
Run Code Online (Sandbox Code Playgroud)