命令
a = magic(3);
b = pascal(3);
c = cat(4,a,b);
产生一个3乘3乘1的阵列。
为什么维度为3-3-1-2
时的结果为4
?
答案 0 :(得分:1)
a
和b
都是大小为3乘3的二维矩阵。当你沿着第四维连接它们时,插入的第三维是单例(即1)。因此c(:,:,1,1)
将是您的矩阵a
,而c(:,:,1,2)
将是您的矩阵b
。
这里的a link to some documentation可能有助于理解多维数组。
修改强>
也许这将有助于以人类可以更容易地与...相关的术语来考虑这四个维度。
我们假设示例中的四个维度表示空间中的三个维度(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来明确地显示第三维仍然存在。