命令
a = magic(3);
b = pascal(3);
c = cat(4,a,b);
生成一个 3×3×1×2 数组。
为什么3-3-1-2
尺寸为 时的结果4
?
命令
a = magic(3);
b = pascal(3);
c = cat(4,a,b);
生成一个 3×3×1×2 数组。
为什么3-3-1-2
尺寸为 时的结果4
?
a
和都是b
大小为 3×3 的二维矩阵。当您沿第四维连接它们时,中间的第三维是单例(即 1)。你c(:,:,1,1)
的矩阵也会如此a
,你的矩阵c(:,:,1,2)
也会如此b
。
这是一些可能有助于理解多维数组的文档的链接。
编辑:
也许用我们人类更容易与之相关的术语来思考这四个维度会有所帮助……
假设示例中的四个维度表示空间中的三个维度(x
、y
和z
)加上第四个维度时间。想象一下,我在给定时间对空间中多个点的空气温度进行采样。x
我可以在包含三个位置、三个y
位置和一个位置的所有组合的网格中对空气温度进行采样z
。这会给我一个 3×3×1 的网格。通常,我们可能只是说数据在 3×3 网格中,忽略尾随单例维度。
但是,假设我现在稍后在这些点上采集另一组样本。因此,我在第二个时间点获得了另一个 3×3×1 网格。如果我将这些数据集沿时间维度连接在一起,我将得到一个 3×3×1×2 矩阵。第三个维度是单例的,因为我只采样了一个z
值。
因此,在示例c=cat(4,a,b)
中,我们沿第四维连接两个矩阵。这两个矩阵是 3×3,隐含地假定第三维是单例的。然而,当沿第四维连接时,我们最终不得不通过将其大小列为 1 来明确显示第三维仍然存在。