2014-10-07 7 views
3

У меня есть пм матрица с размерностью матрица написанной на бумаге, и я хочу, чтобы сделать расчеты на него в J.
можно ввести матрицы, как, что (п = 3, м = 3) :J: Удобный способ ввода матрицы?

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 или чего-то подобного, но я не могу вспомнить, где. : {

+2

Это гораздо легче запомнить 'существительного define' чем' 0: 0 ', и я нахожу код более понятным и более ремонтопригодны с 'глаголом define' чем' 3: 0' или 'наречием четкости«бла-бла-бла» 'чем' 1: 'бла-бла-бла''' и т. д. –

+0

да, хорошее замечание, хотя мне нравится '0: 0' больше :). Я читал раз '0: 0' и' 3: 0', помнил, и с тех пор я забыл о 'verb define' и других. это вопрос вкуса :) –

ответ

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 
+0

Спасибо. Ответ @Tikkanz более подробно, но ваш выглядит лаконичным - в стиле J, так сказать. :) И умение смешивать выражения действительно потрясающе! –

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 
+0

Спасибо. Я согласен с 'noun define', хотя я считаю, что каждый J-программист сначала узнает, что соединение': 'совпадает с' 0: 0', поэтому он знает, что такое '0: 0'. И то, что мне нравится в этой форме, состоит в том, что похоже на яйцо '0', падающее на чье-то кричащее лицо': 0'. ahah: D –

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

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