重塑列向量

Reshape column vector

您好,我正在使用 MATLAB,我有一个 "z" 列向量,其维度为 (9680 x 1)。我想重塑它以获得尺寸为 (44 x 220) 的数组 "z"。我正在执行以下操作:

z=reshape(z,44,220);

我也试过:

z=reshape(z,[44,220]);

但是输出不对(至少第一行)。我可以通过比较输出矩阵和初始向量来看到它。

我只需要列向量的第一个220个位置作为矩阵第一行的长度,然后向量接下来的220个位置作为矩阵的第二行等等,直到得到44行。

我做错了什么?感谢您的帮助。

Matlab 以列主要格式存储矩阵值(这在整形期间很重要)。因为你想要行专业,你需要做

z = reshape(z, [220 44]).';

即之后转置。

我会使用 的方法。

作为替代方案,通信工具箱中有一个 vec2mat 函数可以执行此操作,甚至可以在需要时填充缺失值:

>> x = 11:18;
>> vec2mat(x,4) %// no padding needed
ans =
    11    12    13    14
    15    16    17    18
>> vec2mat(x,5) %// padding needed; with 0 by default
ans =
    11    12    13    14    15
    16    17    18     0     0
>> vec2mat(x,5,-1) %// padding needed; with specified value
ans =
    11    12    13    14    15
    16    17    18    -1    -1