【问题标题】:Multiply the rows of a matrix to get a vector: J, j701将矩阵的行相乘得到一个向量:J, j701
【发布时间】:2013-07-19 17:04:45
【问题描述】:

我正在用 J 编程。 我有这个向量:

    F =: 5>\i.10
    F
0 1 2 3 4
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9

我怎样才能得到这个向量作为结果:

   (*/ 0 1 2 3 4), (*/ 1 2 3 4 5), (*/ 2 3 4 5 6), (*/ 3 4 5 6 7), (*/ 4 5 6 7 8), (*/ 5 6 7 8 9)
0 120 720 2520 6720 15120
   NB. I want to multiply all the rows

我试过了:

   */ F
0 720 5040 20160 60480

但是,你怎么能看到它乘以列,而我想要行。 如何使用 */ 将行相乘?谢谢大家!

【问题讨论】:

    标签: vector matrix multiplication j


    【解决方案1】:

    总之,你要的是5 */\ i.10

       5 */\ i.10
    0 120 720 2520 6720 15120
    

    但是,如果您曾经在另一个上下文中遇到过这个问题,并且您真的想解决这些行,您可以说:

       ]M=:5>\i. 10
    0 1 2 3 4
    1 2 3 4 5
    2 3 4 5 6
    3 4 5 6 7
    4 5 6 7 8
    5 6 7 8 9
    
       */ rows M
    0 120 720 2520 6720 15120
    

    标准库将行定义为"1。也就是说,它应用了“等级 1”的动词。等级是 J 中的一个基本概念,您需要理解它才能在语言中进步。

    【讨论】:

    • 如果您熟悉 C 或 C 派生语言(如 Java),您将从 J 安装中提供的“J for C Programmers”中获得很多见解(在帮助下)以及在网络上:jsoftware.com/help/jforc/contents.htm
    猜你喜欢
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多