特に必要性がデータの特定の構造に制限されている場合(おそらくあなたの例で示唆されているように)、パディングを直接行うことが効率への道になると思います。このソリューションはパフォーマンス分析の対象ではありませんが、パディングを自分で行う方法。
ここでは、ボックス化されたリストからテーブルに移動するタスクが常に含まれており、データは常に数値であると仮定しています。適切な引数が期待どおりであることを確認するために、追加のassert.
ステートメントを追加する価値がある場合があります。
v=.1 4 8 ; 2 6 4 ; 6 8 4 5; 7 8 9; 6 3 7 4 9 NB. example data
paddedOpen=: dyad define
assert. 0 = # $ x
Lengths=. #&> y
PadTo=. >./ Lengths
Padding=. x #~&.> PadTo - Lengths
y ,&> Padding
)
_1 paddedOpen v
1 4 8 _1 _1
2 6 4 _1 _1
6 8 4 5 _1
7 8 9 _1 _1
6 3 7 4 9
デフォルト値を仲介として使用できない場合にのみ、カスタマイズされた値で最初にパディングすることが重要です。デフォルト値を渡すときに使用できる場合は、デフォルトのパディングを発生させてから、すべてのデフォルト値を優先値に置き換える方が高速です。あなたの質問の性質から、デフォルト値はメインドメインで意味があると思いますので、単純な置き換えは役に立ちません。
さまざまな手法の相対的なパフォーマンス、または少なくとも 1 つの手法が目的に対して十分に高速であることが証明されているかどうかについて、コメントを残してください。