如何通过添加零来调整矩阵大小/扩展?

时间:2013-12-18 08:22:54

标签: arrays matlab matrix

如何扩展二次方 - 如果说NxN矩阵更像是一个(N + k)x(N + k)矩阵?

这真的是关于调整矩阵的大小并用零填充缺失的行/列,这样就不会发生尺寸不匹配。

2 个答案:

答案 0 :(得分:9)

不需要比现在更困难。如果您为原始大小之外的元素指定了某些内容,MATLAB会自动使用零填充:

n = 4;
A = [1 2; 3 4];
A(n,n) = 0;
A =    
   1   2   0   0
   3   4   0   0
   0   0   0   0
   0   0   0   0

答案 1 :(得分:7)

您可以使用padarray向矩阵添加零...例如:

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

B =
 1     2     0     0
 3     4     0     0
 0     0     0     0
 0     0     0     0

或者,如果您没有图像处理工具箱,则可以使用矩阵索引:

B = zeros(size(A)+k, class(A));
B(k:end-k+1,k:end-k+1) = A;