X 和 Y 可以是数据对、向量或矩阵。X 和 Y 可以有不同的数据形式和长度或维度。

Y 是一个可选参数。如果Y没有指定,将会执行cross(func X X),其中func必须是对称二元函数,如 corr 函数。

将X和Y中元素的两两组合作为参数来调用函数。如果X或Y是矩阵,以列为单位遍历。以下是 cross 高阶函数的伪代码:

假设X有m个元素或m列,Y有n个元素或n列,如果func(X[i] Y[j])是标量,将返回一个m×n矩阵,如果func(X[i] Y[j])是向量,将返回一个长度为m的元组,每个元素是一个长度为n的元组。

一个向量和一个矩阵执行 cross,返回的结果是一个矩阵:

一个向量和一个矩阵执行 cross,返回的结果是一个元组: