矩阵的MATLAB重塑

时间:2018-03-10 09:41:01

标签: matlab

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

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

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

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

首先尝试这一步。

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

答案 1 :(得分:0)

您似乎不止一次运行代码。当您运行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]);

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