fill!

语法

fill!(obj, index, value)

参数

obj 可以是一个向量、元组、矩阵、字典或表。

如果 obj 是向量、元组或矩阵,index 是整数,表示下标;如果 obj 是字典或表,index 是字符串,分别表示key或列名。

value 是标量或向量,表示新的值。

详情

objindex 对应位置的值设为 value,相当于赋值语句 obj[index]=value。

例子

例1. 向量

a=[1,2,3,4];
fill!(a,3,12);
a;
# output
[1,2,3,12]

fill!(a,[0,1],[10,11]);
# output
[10,11,3,12]

例2. 元组

a=([1,2,3],["a","b","c"]);
fill!(a,0,[4,2]);
a[0];
# output
[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;
# output
c->3
a->4
b->2