如何通过附加0来将矩阵转换为方阵

时间:2016-02-24 20:28:42

标签: matlab matrix

我有各种尺寸的矩阵列表。例如:

97x347 uint8

63x57 uint8

97x225 uint8

73x249 uint8

49x200 uint8

64x278 uint8

我需要将它们转换为方阵。我查看了reshape,但这不是我想要的,因为我需要保持数据的安排不受干扰。这些应该通过将0添加到行和列来转换为方形矩阵。

有可能实现这一目标吗?丢失数据不是问题,因此如果要删除某些行和列以实现此目标,则不会影响我的最终结果。

2 个答案:

答案 0 :(得分:1)

您可以使用padarray功能。

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

     1     2     3
     4     5     6
     0     0     0

以下是其文档http://www.mathworks.com/help/images/ref/padarray.html

的链接

答案 1 :(得分:1)

因为在矩阵边界外写入会扩展它,所以它就像

一样简单
function a=squarify(a);
[m n]=size(a);
if m==n; return; end
a( max(m,n) , max(m,n) ) = 0