Matrix 增加apl中的数字

Matrix 增加apl中的数字,matrix,apl,dyalog,Matrix,Apl,Dyalog,我有以下数据: a b c d 5 9 6 0 3 1 3 2 字符在第一行,数字在第二行 如何获取与第二行中的最大数字对应的字符,以及如何增加第二行中的相应数字?(例如,这里,b列的数字最高,9,因此将该数字增加10%。) 我使用Dyalog 17.1版。和: ⎕←数据←3 4⍴'a''b''c''d''5 9 6 0 3 1 3 2 a、b、c、d 5 9 6 0 3 1 3 2 可以使用以下命令提取第二行: 2⌷数据 5 9 6 0 现在,按降序对其进行分级,即找到将其从最高到最低排

我有以下数据:

a b c d
5 9 6 0
3 1 3 2
字符在第一行,数字在第二行

如何获取与第二行中的最大数字对应的字符,以及如何增加第二行中的相应数字?(例如,这里,
b列
的数字最高,
9
,因此将该数字增加10%。)

我使用Dyalog 17.1版。

和:

⎕←数据←3 4⍴'a''b''c''d''5 9 6 0 3 1 3 2
a、b、c、d
5 9 6 0
3 1 3 2
可以使用以下命令提取第二行:

2⌷数据
5 9 6 0
现在,按降序对其进行分级,即找到将其从最高到最低排序的索引:

⍒2.⌷数据
2 3 1 4
第一个数字是我们要查找的列:

⊃⍒2.⌷数据
2.
现在我们可以使用它从第一行提取字符:

数据[⊂1.⊃⍒2.⌷[数据]
B
但是我们只需要列索引,而不需要实际的字符。我们希望增加的数字的完整索引为:

2,⊃⍒2.⌷数据
2 2
提取数据以确定我们得到了正确的索引:

数据[⊂2.⊃⍒2.⌷[数据]
9
现在我们可以创建一个目标值增加10%的新数组:

1.1×@(⊂2.⊃⍒2.⌷(数据)⊢数据
a、b、c、d
5 9.9 6 0
3 1   3 2
或将其更改到位:

数据[⊂2.⊃⍒2.⌷数据]×←1.1
数据
a、b、c、d
5 9.9 6 0
3 1   3 2
带有:

⎕←数据←3 4⍴'a''b''c''d''5 9 6 0 3 1 3 2
a、b、c、d
5 9 6 0
3 1 3 2
可以使用以下命令提取第二行:

2⌷数据
5 9 6 0
现在,按降序对其进行分级,即找到将其从最高到最低排序的索引:

⍒2.⌷数据
2 3 1 4
第一个数字是我们要查找的列:

⊃⍒2.⌷数据
2.
现在我们可以使用它从第一行提取字符:

数据[⊂1.⊃⍒2.⌷[数据]
B
但是我们只需要列索引,而不需要实际的字符。我们希望增加的数字的完整索引为:

2,⊃⍒2.⌷数据
2 2
提取数据以确定我们得到了正确的索引:

数据[⊂2.⊃⍒2.⌷[数据]
9
现在我们可以创建一个目标值增加10%的新数组:

1.1×@(⊂2.⊃⍒2.⌷(数据)⊢数据
a、b、c、d
5 9.9 6 0
3 1   3 2
或将其更改到位:

数据[⊂2.⊃⍒2.⌷数据]×←1.1
数据
a、b、c、d
5 9.9 6 0
3 1   3 2

你能解释一下这种情况是如何造成的吗?如何与第三排绑定?例如,如果第三行的数字是3,那么我们将第二行的数字乘以2,如果是1,那么我们将乘以1。5@cickness我建议你为此提出一个新问题,并确保解释到底是什么关系使得3乘以2,而1乘以1.5。是一个数学公式还是一个查找表?你能解释一下这种情况是如何产生的吗?如何与第三排绑定?例如,如果第三行的数字是3,那么我们将第二行的数字乘以2,如果是1,那么我们将乘以1。5@cickness我建议你为此提出一个新问题,并确保解释到底是什么关系使得3乘以2,而1乘以1.5。是数学公式还是查找表?