【问题标题】:Change the size of matrix?改变矩阵的大小?
【发布时间】:2016-05-06 17:46:24
【问题描述】:

我有一张图像要转换为大小为(n,m) 的二进制矩阵

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

【问题讨论】:

  • 需要看一些代码,所以我们可以提供帮助。
  • 那么我下面的建议对你有用吗?

标签: image matlab image-processing


【解决方案1】:

其实很简单。假设您的矩阵是An x m。我假设您想要 zero-pad 矩阵,这意味着额外的元素将设置为 0。您只需这样做:

[n,m] = size(A);
A(:,m+1:n) = 0;

第一行代码找到矩阵A 的行n 和列m。接下来,我们将从(m+1)th 列到nth 列的所有行都设为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

小提示

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多