2013-07-19 3 views
0

Я программирования с J. У меня есть этот вектор:Умножение строки матрицы, чтобы получить вектор: J, J701

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 

, но, как вы можете видеть, что умножать столбцы, и я хочу, чтобы строки. Как я могу использовать */для умножения строк? Спасибо вам всем!

ответ

2

Короче говоря, что вы хотите 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, и вам нужно понять ее, чтобы продвигаться с языком.

+0

Спасибо, я думаю, мне нужно найти хорошее руководство для J! –

+1

Если вам удобно с C или C-производными языками (например, Java), вы получите много информации из «J для программистов на C», которая доступна в установке J (в разделе справки), а также на web at: http://www.jsoftware.com/help/jforc/contents.htm –

+0

Да, я запрограммировал многое на C, спасибо! : D –

 Смежные вопросы

  • Нет связанных вопросов^_^