改变矩阵的大小?

时间:2016-05-06 17:46:25

标签: image matlab image-processing

我有一张图片,我正在转换为尺寸为(n,m)的二进制矩阵

我需要一个MATLAB函数来将此矩阵的大小重新整形为(n,n)。 否则,是否可以使图像的大小为(n,n)而不是初始的(n,m)

1 个答案:

答案 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的示例,该流程要求我们更改大小,以便A4 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

次要注意事项

这假设行数大于列数...我假设这是您的最终要求。如果不是这种情况,则上述代码将不起作用。您可以使算法不可知,而您可以在具有最少条目的维度中填充矩阵,但我会将其作为练习留给您。