2.6.3 数组连接
2025年09月20日
2.6.3 数组连接
数组可以通过函数cat(k,A,B,C,…)执行连接操作。例如:
函数cat(k,A,B,C,…)按照下列规则沿维数k连接数组A,B,C,…:
(1)数组A,B,C,…必须具有相同数目的维数,即ndims(A)=ndims(B)=…。
(2)数组A,B,C,…必须类型等价。结果数组的数据类型是这些实参的最大扩展类型。最大扩展类型应该是等价的。Real和Integer子类型可以混用,产生一个Real结果数组,其中Integer数值已被转换为Real数值。
(3)k必须是(这些实参数组)存在的维数,即,1≤k≤ndims(A)=ndims(B)=ndims(C);k应为整数。
(4)大小匹配:除了第k维的大小之外,数组A,B,C,…必须具有相同的数组大小,即对于1≤j≤ndims(A)且j=k,size(A,j)=size(B,j)。
有一种特殊的语法用于沿第一维和第二维的连接:
(1)沿第一维的连接:[A;B;C;…],
(2)沿第二维的连接:[A,B,C,…]。
(3)这两种方式可以混用。[…,…]优先级高于[…;…],例如[a,b;c,d]解析为[[a,b];[c,d]]。
需要注意的是,在执行沿第一维或第二维的数组连接之前,将所有元素提升为矩阵,这样矩阵可通过标量或者向量来构造。例如:
上面两种形式是等价的,显然第一种形式更为简洁易读。更多例子如下: