【问题标题】:MATLAB reshaping of matrix矩阵的MATLAB重塑
【发布时间】:2018-03-10 09:41:00
【问题描述】:

大家好,我对 MATLAB 比较陌生,正在尝试重塑我目前拥有的矩阵。我有一个 12*14*6400 的矩阵,并试图将其重塑为 1200*14*64,其中第二维保持不变,并且在我的第三维中有 64 个数字的 1200 个窗口(第一维)而不是 12 个 6400 的窗口数字。我想过只使用

raw = permute(raw,[1,3,2]);
reshape = permute(reshape(raw, 1200, 64, 14), [1 3 2]);

但我认为这不是正确的做法。当我尝试运行它时,我得到“下标索引必须是真正的正整数或逻辑。”

感谢您的帮助!

【问题讨论】:

    标签: matlab


    【解决方案1】:

    您似乎不止一次运行代码。当你运行reshape(raw, 1200, 64, 14)时,Matlab不会调用函数reshape而是调用变量。

    从 Matlab 工作区中删除 reshape 变量。带回原来的 raw 变量,然后运行以下命令:

    raw = permute(raw,[1,3,2]);
    newmat = permute(reshape(raw, 1200, 64, 14), [1 3 2]);
    

    避免使用函数名作为变量很重要。除此之外,您的代码似乎正确

    【讨论】:

    • 谢谢!您对 matlab 调用变量的问题是正确的。我在想这很奇怪,因为我第一次能够运行该程序,但随后却失败了。
    【解决方案2】:

    先试试这个。

    raw=rand(12,14,6400);
    raw=reshape(raw,[1200,14,64]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-02
      相关资源
      最近更新 更多