3 apl
我是APL的新手.如何从阵列中删除不需要的元素?
例如:
X?1 2 3 4 5 6 7 8 9
Run Code Online (Sandbox Code Playgroud)
现在我想删除等于4或6的X元素.我试过了
X?4?X
Run Code Online (Sandbox Code Playgroud)
从X中删除4,但它没有用.提前致谢.
执行此操作的适当方法是使用without函数(dyadic tilda):
x?1 2 3 4 5 6 7 8 9
x~4 6
1 2 3 5 7 8 9
Run Code Online (Sandbox Code Playgroud)
但是,如果您需要为了其他目的而删除要删除的项目的位置(可能是从某些其他相关数组中删除相应的项目),那么上面的MrZander技术是合适的.
试试这个,假设 x = 1 2 3 4 5 6 7 8 9
x?(~x?4 6)/x
Run Code Online (Sandbox Code Playgroud)
说明
阵列中找到4和6x
与x?4 6
其输出:0 0 0 1 0 1 0 0 0
(4和6的位置)
现在,用~
which 输出否定这个数组1 1 1 0 1 0 1 1 1
(与上面相反)
将此应用到数组 x 中,/x
从而为您留下1 2 3 5 7 8 9
最后,将其分配给 xx?
并将 x 保留为您想要的输出。
归档时间: |
|
查看次数: |
727 次 |
最近记录: |