我的猜测是,直接进行填充将是提高效率的途径,特别是如果需要仅限于特定的数据结构(如您的示例所建议的那样)。此解决方案尚未经过性能分析,但它显示了一个自己做填充的方法。
在这里,我假设该任务始终涉及从盒装列表到表格,并且数据始终是数字的。额外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
只有当默认值不能作为中介时,才需要先填充自定义值。如果默认值可以传递使用,那么让默认填充发生然后用首选值替换所有默认值会更快。从您的问题的性质来看,我假设默认值在主域中具有意义,因此简单的替换将不起作用。
请留下评论,告知我们不同技术的相对性能,或者至少一种技术是否足以满足您的目的。