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

dis*_*ame 3 arrays matlab matrix

怎么可能扩展二次方 - 比方说NxN矩阵更像是一个(N + k)x(N + k)矩阵?

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

Ste*_*fin 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
Run Code Online (Sandbox Code Playgroud)


bla*_*bla 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
Run Code Online (Sandbox Code Playgroud)

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

B = zeros(size(A)+k, class(A));
B(k:end-k+1,k:end-k+1) = A;
Run Code Online (Sandbox Code Playgroud)