我有一张图片,我正在转换为尺寸为(n,m)
的二进制矩阵
我需要一个MATLAB函数来将此矩阵的大小重新整形为(n,n)
。
否则,是否可以使图像的大小为(n,n)而不是初始的(n,m)
?
答案 0 :(得分:1)
实际上很容易。假设您的矩阵为A
且为n x m
。我假设您想要零填充矩阵,这意味着额外的元素将设置为0.您只需执行此操作:
[n,m] = size(A);
A(:,m+1:n) = 0;
第一行代码查找矩阵n
的行m
和列A
。接下来,我们将从(m+1)
列到n
列的所有行全部为0,这有效地使其成为n x n
矩阵。
以下是4 x 2
矩阵A
的示例,该流程要求我们更改大小,以便A
为4 x 4
。
>> A = rand(4,2)
A =
0.9575 0.9572
0.9649 0.4854
0.1576 0.8003
0.9706 0.1419
>> [n,m] = size(A);
>> A(:,m+1:n) = 0
A =
0.9575 0.9572 0 0
0.9649 0.4854 0 0
0.1576 0.8003 0 0
0.9706 0.1419 0 0
这假设行数大于列数...我假设这是您的最终要求。如果不是这种情况,则上述代码将不起作用。您可以使算法不可知,而您可以在具有最少条目的维度中填充矩阵,但我会将其作为练习留给您。