fill!
语法
fill!(obj, index, value)
参数
obj 可以是一个向量、元组、矩阵、字典或表。
如果 obj 是向量、元组或矩阵,index 是整数,表示下标;如果 obj 是字典或表,index 是字符串,分别表示key或列名。
value 是标量或向量,表示新的值。
详情
将obj中index对应位置的值设为value,相当于赋值语句obj[index]=value。
例子
例1. 向量
$ a=[1,2,3,4];
$ fill!(a,3,12);
$ a;
[1,2,3,12]
$ fill!(a,[0,1],[10,11]);
[10,11,3,12]
例2. 元组
$ a=([1,2,3],["a","b","c"]);
$ fill!(a,0,[4,2]);
$ a[0];
[4,2]
//创建一个长度为20,并且每个元素为FLOAT类型的NULL值
$ array(ANY, 20).fill!(0:20, float());
//相当于以下语句
$ t = array(ANY, 20);
$ t[0:20] = float()
例3. 矩阵
$ m=1..12$3:4;
$ fill!(m,2,5); //将第2列的值全部设为5
$ m;
#0 |
#1 |
#2 |
#3 |
---|---|---|---|
1 |
4 |
5 |
10 |
2 |
5 |
5 |
11 |
3 |
6 |
5 |
12 |
$ fill!(m,[1,2],5); //将第1,2列的值全部设为5
$ m;
#0 |
#1 |
#2 |
#3 |
---|---|---|---|
1 |
5 |
5 |
10 |
2 |
5 |
5 |
11 |
3 |
5 |
5 |
12 |
$ fill!(m,(1,),9); //将第1行的值设为9
$ m;
#0 |
#1 |
#2 |
#3 |
---|---|---|---|
1 |
5 |
5 |
10 |
9 |
9 |
9 |
9 |
3 |
5 |
5 |
12 |
$ m.fill!((1,2),10).fill!((2,2),12); //将第1行,第2列的值设为10,第2行第2列的值设为12
$ m;
#0 |
#1 |
#2 |
#3 |
---|---|---|---|
1 |
5 |
5 |
10 |
9 |
9 |
10 |
9 |
3 |
5 |
12 |
12 |
例4. 表
$ t=table(1 2 3 as id,10.2 45.2 12.3 as val);
$ fill!(t,`id,4 5 6);
$ t;
id |
val |
---|---|
4 |
10.2 |
5 |
45.2 |
6 |
12.3 |
$ fill!(t,`qty,452 142 48);
$ t;
id |
val |
qty |
---|---|---|
4 |
10.2 |
452 |
5 |
45.2 |
142 |
6 |
12.3 |
48 |
例5. 字典
$ d=dict(`a`b`c,1 2 3);
$ fill!(d,`a,4);
$ d;
c->3
a->4
b->2