poster
2019-12-10, 20:30
命令
a = magic(3); b = pascal(3); c = cat(4,a,b); 产生一个3×3×1×2数组。
为什么尺寸为4时结果3-3-1-2 ?
回答:
a和b都是尺寸为3 x 3的二维矩阵。当沿着第四个维度将它们串联时,中间的第三个维度为单例(即1)。所以c(:,:,1,1)将是矩阵a而c(:,:,1,2)将是矩阵b 。
这是一些文档的链接,这些文档 (http://www.mathworks.com/access/helpdesk/help/techdoc/math/f1-86528.html)可能有助于理解多维数组。
编辑:
从人类可以更轻松地与之联系的角度来思考这四个维度可能会有所帮助...
假设示例中的四个维度代表空间中的三个维度( 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 x 3,第三个维度隐式地假定为单例。但是,当沿着第四个维度进行连接时,我们最终不得不通过将其尺寸列为1来明确显示第三个维度仍然存在。
更多&回答... (https://stackoverflow.com/questions/2609495)
a = magic(3); b = pascal(3); c = cat(4,a,b); 产生一个3×3×1×2数组。
为什么尺寸为4时结果3-3-1-2 ?
回答:
a和b都是尺寸为3 x 3的二维矩阵。当沿着第四个维度将它们串联时,中间的第三个维度为单例(即1)。所以c(:,:,1,1)将是矩阵a而c(:,:,1,2)将是矩阵b 。
这是一些文档的链接,这些文档 (http://www.mathworks.com/access/helpdesk/help/techdoc/math/f1-86528.html)可能有助于理解多维数组。
编辑:
从人类可以更轻松地与之联系的角度来思考这四个维度可能会有所帮助...
假设示例中的四个维度代表空间中的三个维度( 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 x 3,第三个维度隐式地假定为单例。但是,当沿着第四个维度进行连接时,我们最终不得不通过将其尺寸列为1来明确显示第三个维度仍然存在。
更多&回答... (https://stackoverflow.com/questions/2609495)