我有一个用纸写的 n -by- m 矩阵,我想在J.上进行计算。
我可以输入这样的矩阵( n = 3, m = 3):
A =: 3 4 $ 1 3 2 4 7 8 1 2 2 0 0 1
问题是如何输入这样的矩阵:
A =: (something here)
1 3 2 4
7 8 1 2
2 0 0 1
)
我之所以提出这样一个奇怪的问题,是因为我在某本书中看到过使用动词0 : 0
或类似内容输入矩阵的类似方法,但我记不清楚在哪里。的:{
答案 0 :(得分:2)
我将(something here)
用作(".;._2) 0 : 0
。这样我也可以混合表达式。
] A =: (".;._2) 0 : 0
5 $ 0
? 5 $ 5
5 $ 1
1 2 3 2 1
)
0 0 0 0 0
2 1 0 0 3
1 1 1 1 1
1 2 3 2 1
答案 1 :(得分:2)
使用二元(而不是一元)".
将尝试将每一行解析为一串数字,而不是将其评估为J句。如果字符串无法解析为数字,则使用左参数(以下示例中为_99
)。这种方法将正确解释表示为字符串的更大数字集。
选择noun define
而不是0 : 0
只会保存一组括号,而这些括号是将_2
与0
分开所必需的。
]A =: _99&".;._2 noun define
1 -3 2 4
7 8 1 2
2 0 0 1
)
1 _3 2 4
7 8 1 2
2 0 0 1