难以理解MATLAB“ cat”命令中的三维尺寸

时间:2019-04-14 14:31:05

标签: matlab

我正在阅读matlab在线文档中的fliplr命令,在那里遇到了命令'cat'
它用于串联。 cat命令的第一个参数指定将发生级联的维度。例如,如果第一个参数为1,则矩阵将沿列连接;如果第一个参数为2,则矩阵将沿行连接。但是,在这种情况下,如果第一个参数为3怎么办? 我对它的行为感到困惑,如所附照片中的当前方案所示。 分配或执行cat命令后,A的内容是什么?高亮线的含义是什么? '3'是第三维吗?如果是,那怎么可能?它的形式将是第一页上具有第一矩阵[1 2; 3 4],第二页上具有第二矩阵[5 6; 7 8] (如果我错了,请纠正我)

cat command query

1 个答案:

答案 0 :(得分:0)

是的,它是一个3维数组。 Matlab支持N维数组。参见Matlab documentation for Multidimensional Arrays

  

分配或执行cat命令后,A的内容是什么?

3维数组,输入沿3维以“页面”排列。

  

突出显示的行是什么意思?

数组是3维的,但是您的计算机屏幕只有2维的,因此Matlab必须想出其他一些方法来显示2维的3D数组。在这里,它将其分解为沿着较高维度的每个索引的二维切片。

A(:,:,1) = 

  1    2
  3    4

A(:,:,2) = 

:的意思是“该维度上的所有索引”。 1中的(:,:,1)表示它是维度3的第一个索引。2中的(:,:,2)表示它是维度3的第二个索引。

  

'3'表示三维尺寸吗?

是的

  

如果是,那怎么可能?

您可以通过执行索引转换将任意多个维度折叠到内存地址的单个维度中。当计算机内存的布局为一维时,这是对如何首先使用二维数组的扩展。参见Matlab doco。

  

它会以页面的形式出现吗?第一页上有第一矩阵[1 2; 3 4],第二页上是第二矩阵[5 6; 7 8]?

是的