eachLeft (:L)
语法
eachLeft(func, X, Y)
或
X <operator>:L Y
参数
func 是一个二元函数。
X 可以是向量、矩阵或表。
详情
把func(X(i),Y)应用到X的每个元素中。
如果func支持向量操作,并且输入数据是一个向量,使用向量函数或运算符比使用eachLeft更为高效。
例子
eachLeft 作用于两个向量:
$ x = 4 3 2 1
$ y = 3 0 6;
$ x +:L y;
4 |
3 |
2 |
1 |
---|---|---|---|
7 |
6 |
5 |
4 |
4 |
3 |
2 |
1 |
10 |
9 |
8 |
7 |
$ eachLeft(pow, x, y);
4 |
3 |
2 |
1 |
---|---|---|---|
64 |
27 |
8 |
1 |
1 |
1 |
1 |
1 |
4096 |
729 |
64 |
1 |
eachLeft 作用于一个矩阵以及一个向量:
$ x=1..6$2:3;
$ x;
col1 |
col2 |
col3 |
---|---|---|
1 |
3 |
5 |
2 |
4 |
6 |
$ x ** :L 1 1;
[3,7,11]
eachLeft 作用于两个矩阵:
$ y=6..1$2:3;
$ y;
col1 |
col2 |
col3 |
---|---|---|
6 |
4 |
2 |
5 |
3 |
1 |
$ z = x **:L y;
$ z;
(#0 #1 #2
-- -- --
16 10 4
,#0 #1 #2
-- -- --
38 24 10
,#0 #1 #2
-- -- --
60 38 16
)
$ typestr z;
ANY VECTOR