将4x2矩阵转换为两个2x2矩阵?

时间:2016-08-19 16:12:09

标签: matlab

我创建了一个meshgrid,然后将这些点转换为单个向量,如下所示:

gMax = 1;
gStep = 2;
[g1, g2] = meshgrid(-gMax:gStep:gMax, -gMax:gStep:gMax);

这为g1和g2提供了以下输出:

g1 =

    -1     1
    -1     1

g2 =

    -1    -1
     1     1

现在,如果可以将两个矩阵转换为单个矩阵,如下所示:

gridPoints = [g1(:) g2(:)];

这给出了输出:

gridPoints =

    -1    -1
    -1     1
     1    -1
     1     1

现在我的问题是:如何将单个4x2网格点矩阵转换回两个2x2矩阵的原始形式?

1 个答案:

答案 0 :(得分:1)

您可以使用gridPointsreshape的每一列执行此操作,将其从4 x 1更改为2 x 2。

g1 = reshape(gridPoints(:,1), [2 2]);
g2 = reshape(gridPoints(:,2), [2 2]);

您可以将其概括为g1g2的任意方块大小。

g1 = reshape(gridPoints(:,1), sqrt(size(gridPoints, 1)), []);   
g2 = reshape(gridPoints(:,2), sqrt(size(gridPoints, 1)), []);