用0'填充矩阵;s-Matlab

用0'填充矩阵;s-Matlab,matlab,Matlab,我如何用0填充矩阵?例如,如果我有以下矩阵: x x x x x x x x x 那我要 0 0 0 0 0 0 x x x 0 0 x x x 0 0 x x x 0 0 0 0 0 0 最简单的方法是使用所需的新大小创建第二个全零变量,然后更改内部值 a= [ 1,2,3; 4,5,6; 7,8,9]; b = zeros(length(a)+2); b(2:end-1,2:end-1)=a; 印刷品 b = 0 0 0 0

我如何用0填充矩阵?例如,如果我有以下矩阵:

x x x
x x x
x x x
那我要

0 0 0 0 0
0 x x x 0
0 x x x 0
0 x x x 0
0 0 0 0 0

最简单的方法是使用所需的新大小创建第二个全零变量,然后更改内部值

a= [ 1,2,3;
     4,5,6;
     7,8,9];

 b = zeros(length(a)+2);
 b(2:end-1,2:end-1)=a;
印刷品

b =

 0     0     0     0     0
 0     1     2     3     0
 0     4     5     6     0
 0     7     8     9     0
 0     0     0     0     0

这可能是最快的方法,因为向原始数组添加行和列需要更多的操作。

最简单的方法是创建第二个具有所需新大小的全零变量,然后更改内部值

a= [ 1,2,3;
     4,5,6;
     7,8,9];

 b = zeros(length(a)+2);
 b(2:end-1,2:end-1)=a;
印刷品

b =

 0     0     0     0     0
 0     1     2     3     0
 0     4     5     6     0
 0     7     8     9     0
 0     0     0     0     0

这可能是最快的方法,因为向原始数组中添加行和列需要更多的操作。

TDevlin的答案在一般情况下非常有效,但是如果您碰巧有图像处理工具箱,您也可以使用
padarray

>> A=magic(3)
A =

   8   1   6
   3   5   7
   4   9   2

>> padarray(A,[1 1])
ans =

   0   0   0   0   0
   0   8   1   6   0
   0   3   5   7   0
   0   4   9   2   0
   0   0   0   0   0

TDevlin的答案在一般情况下会非常有效,但如果您碰巧有图像处理工具箱,也可以使用
padarray

>> A=magic(3)
A =

   8   1   6
   3   5   7
   4   9   2

>> padarray(A,[1 1])
ans =

   0   0   0   0   0
   0   8   1   6   0
   0   3   5   7   0
   0   4   9   2   0
   0   0   0   0   0