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;
// 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