【发布时间】:2023-03-17 14:15:01
【问题描述】:
我有一个像这样的二进制矩阵:
0 0 0 0 0 0
0 0 0 1 0 0
0 1 0 0 0 0
0 0 1 0 1 0
0 0 0 1 0 0
0 0 0 0 0 0
我想修剪这个矩阵(换句话说,删除边界处的零)如下:
0 0 1 0
1 0 0 0
0 1 0 1
0 0 1 0
如何以“Matlab”的方式做到这一点?那是不要使用传统的循环和条件。
为了更清楚,矩阵应该被缩减为从至少有一个1的第一列开始,并在具有相同条件的最后一列结束,包括在内。应删除此范围之外的任何列。相同的规则适用于行。
谢谢。
【问题讨论】:
-
您的输入矩阵是否总是有
0s 的边界,或者您只想修剪所有为0s 的边缘? -
只有边都是
0s -
@Junuxx 这是一个二维矩阵,所以不是完全重复的。
-
@shoelzer:您只需要将答案应用于两个轴。是的,有区别,但很微不足道。
标签: matlab