我有各种尺寸的矩阵列表。例如:
97x347 uint8
63x57 uint8
97x225 uint8
73x249 uint8
49x200 uint8
64x278 uint8
我需要将它们转换为方阵。我查看了reshape
,但这不是我想要的,因为我需要保持数据的安排不受干扰。这些应该通过将0添加到行和列来转换为方形矩阵。
有可能实现这一目标吗?丢失数据不是问题,因此如果要删除某些行和列以实现此目标,则不会影响我的最终结果。
答案 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