Mathematica の位置関数(http://reference.wolfram.com/mathematica/ref/Position.html)のようなものが必要ですが、Qでは長方形行列の私の解決策は次のとおりです。
q) colrow:{sz:count x; $[(count first x) = 1; enlist y; (floor y % sz; y mod sz)]}
q) position:{flip colrow[x;(where raze x = y)]}
長方形の行列とリストに対しては簡単に機能します。
q) t:(1 -1 1; / matrix test
-1 3 4;
1 -1 1);
q) pos1:position[t;-1] / try to find all positions of -1
q) pos1
0 1
1 0
2 1
q) t ./: pos1 / here get items
-1 -1 -1
q) l:1 0 3 0 2 3 4 1 0 / list test
q) pos2:position[l;0] / try to find all positions of 0
q) pos2
1
3
8
q) l ./: pos2 / get items
0 0 0
これは機能しますが、長方形の行列だけでなく、任意のリストに対してより一般的な解決策があるとよいでしょう。たとえば、上記のコードは次のような引数では正しく機能しません。
position[(1 2 3; 1 2; 1 2 1 4); 1]
誰かがそのための一般的な解決策を持っているかもしれませんか?