【问题标题】:Using the matrix in different dimensions [closed]使用不同维度的矩阵[关闭]
【发布时间】:2013-06-13 11:11:56
【问题描述】:

我有一个维度为65536x2 的矩阵,我想将它与另一个维度为256x256 一起使用。如何将第一个矩阵维度更改为256x256?我试过reshape如下:

 N=reshape(u,256,256);

但是,出现以下错误:

Error using reshape
To RESHAPE the number of elements must not change.

在这种情况下我该怎么办?

谢谢。

编辑

原题提到1x65536,后来发现应该是65536x2

【问题讨论】:

  • 使用调试器:>> dbstop if error 并验证 numel(u) 确实是 65536。

标签: matlab matrix reshape dimension


【解决方案1】:

您可以使用N = reshape(u, 256, []),然后验证size(N)256 x 256reshape 的这种语法会自动将[] 指定的维度调整为适合数组中元素数量所需的大小。

编辑:我自己尝试将随机 1 x 65536 矩阵重塑为 256 x 256 矩阵的任何一种语法都没有问题,因此我建议您验证您的初始矩阵是否在事实上1 x 65536 也是如此。

【讨论】:

  • 请注意,它仅在numel(u) 是 256 的倍数时才有效。
  • @Engineero。你说的对。我注意到矩阵大小是65536 x2。这种情况下,我还能reshape吗?
  • 是的,您最终会使用reshape(u, 256, []) 命令得到一个256 x 512 矩阵。
【解决方案2】:

您不能将 reshape 65536-by-2 数组转换为 256-by-256 您有“额外”的 65536 个元素...

试试

>> reshape( u, 256, 256 ,[] );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-02
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多