在 MATLAB 中重塑数组

Reshaping arrays in MATLAB

我有一个大小为 1024 x 1024 x 1024 的二进制 3D 数组。我想使用一个函数 (convhull),它具有以下输入:

X is of size mpts-by-ndim, where mpts is the number of points and ndim is the dimension of the space where the points reside, 2 ≦ ndim ≦ 3

如何将数组重塑为此函数所需的数组 X?

也许 "reshape" 不是最好的词,因为使用 "reshape" 功能还不够。

convhull 寻找的是数组中非零元素的下标列表。给定一个 3D 数组 M:

[X,Y,Z] = ind2sub(size(M), find(M));

然后你在convhull中使用这些:

convhull(X, Y, Z);

您在问题中提到的唯一 X 参数就是这三个串联的列向量:

X = [X Y Z];
convhull(X);