matlab - 在matlab中删除3d矩阵中所有全0行

标签 matlab matrix

我有一个大图像矩阵 125x200x3,该图像有许多大面积的黑色,因此有很多行全为 0。我想完全去除所有这些黑色区域。我知道我应该使用 all(m==0,3) 但似乎我不太明白如何将它与 3d 矩阵一起使用。

m(all(m==0,3),:,:)=[]

超出矩阵... 如有任何帮助,我们将不胜感激!

最佳答案

如果您想删除包含全黑色的,请执行以下操作:

m(all(all(m == 0,3),2),:,:) = [];

内部调用ALL (你正在做的事情)会给你一个 125×200 的逻辑矩阵,每个黑色像素都有一个。外部调用ALL跨维度 2(列)进行操作,为您提供一个逻辑向量,其中包含全黑色的行。然后您可以将其用作索引来删除行。

关于matlab - 在matlab中删除3d矩阵中所有全0行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8404462/

相关文章:

matlab - 如何使用 MATLAB 检查一个椭圆是否在另一个椭圆内?

c - C 执行螺旋矩阵实现中的段错误运行时错误

matrix - 在 Julia 中构造随机正交矩阵序列

matlab - 查找矩阵中所有零元素的邻居

matlab - 这个 Matlab 运算符的名字是什么?

matlab - 如何以编程方式访问 MATLAB 的当前文件夹历史记录

matlab - 在 Ubuntu 上使用 curlftpfs 的权限

algorithm - 如何使用渐变分布两个图像的颜色强度?

java - 如何在 Java 中打印矩阵的所有对角线

javascript - 是否有js插件将矩阵参数转换为css3转换属性?