如何在matlab中用0填充矩阵

时间:2015-11-17 21:16:37

标签: matlab matrix

假设我有一个矩阵[1 2; 3 4],但我需要[0 0 0 0; 0 1 2 0; 0 3 4 0; 0 0 0 0],我现在该怎么做,但是有一个函数可以在一行内解决它吗?

1 个答案:

答案 0 :(得分:2)

如果您有图像处理工具箱,请使用padarray

>> A = [1 2; 3 4];
>> B = padarray(A, [1 1])

B =

     0     0     0     0
     0     1     2     0
     0     3     4     0
     0     0     0     0

第一个输入是您要填充的矩阵,第二个输入是您想要查看的每个维度中沿边界的多少个零。你想要水平和垂直的1元素零边界,因此[1 1]是必需的。

然而,我很困惑为什么你想要这个“一线”。如果你想要一个围绕原始矩阵的单元素边框,那么多行有什么问题?

A = [1 2; 3 4];
B = zeros(size(A) + 2);
B(2:end-1,2:end-1) = A;

这是三行代码,包括原始矩阵的定义,但每行都很清楚。您定义了一个新的矩阵,该矩阵与原始矩阵相比还有2个行和2个列,因为您希望在原始矩阵周围放置1个元素零边界,然后将其放在中间。