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