matrix - APL:如何从矩阵中删除仅包含 0 的行和列?

标签 matrix binary apl

在矩阵中

0 1 0 0
1 0 1 0
1 1 0 0
0 0 0 0

我想通过将第四列和第四行剥离来 reshape 它

0 1 0
1 0 1
1 1 0

执行此操作的明智方法是什么?

最佳答案

给定一个矩阵,例如:

A←0 1 1 0 1⍀1 0 0 1 1\3 3⍴⍳9

这是:

0 0 0 0 0
1 0 0 2 3
4 0 0 5 6
0 0 0 0 0
7 0 0 8 9  

空行和空列可以通过以下方式删除:

(0∨.≠B)/B←(A∨.≠0)⌿A

输出:

1 2 3
4 5 6
7 8 9

仅修剪外部:

修剪前导列和尾随列:

(∨\0∨.≠B)/B←(⌽∨\⌽0∨.≠A)/A

修剪前导行和尾随行:

(-2↑+/^\⌽B^.=0)↓B←(∨\A∨.≠0)⌿A

一起:

(-2↑+/^\⌽D^.=0)↓D←(∨\C∨.≠0)⌿C←(∨\0∨.≠B)/B←(⌽∨\⌽0∨.≠A)/A

关于matrix - APL:如何从矩阵中删除仅包含 0 的行和列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17626874/

相关文章:

c++ - 将 Mat 转换为 **float

APL 从数组中删除元素

APL 组件文件与 native 文件和。数据库

python - 如何将字符串转换为二进制?

functional-programming - J引入fork的动机是什么

c - 用 C 生成随机矩阵

Python——计算共现矩阵

c++ - IplImage 与 CvMat

java - 将二进制字符串转换为字节数组

python - 十进制转二进制,如何得到8位二进制?