设置单独的1 0年代在一个逻辑向量或矩阵

3视图(30天)
例如:如果我有这个向量[0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0]
我想取代的1(第六元素在这种情况下),零,现有的算法,可以吗?
例如[0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0]- - - - - > [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0]
的背景下,这是一个一行的像素的颜色阈值返回1区域的绿色和0。
唯一的1代表一个异常点,没有绿色,因此我想把它换成一个0。
条件,我想做同样的任何部分的1 s轨道的长度小于3。
例如[0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0]会去[0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0]

接受的答案

图像分析
图像分析 2021年4月2日
您可以使用bwareaopen图像处理工具箱中的()。你指定长度最小的区域要保持,想摆脱单一的1 2或更长时间的保持运行
v = [0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0]
v2 = bwareaopen (v, 2)%保持运行2或更长
6个评论

登录置评。

答案(1)

1月
1月 2021年4月2日
编辑:1月 2021年4月2日
a = [0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0);
(val, n) = RunLength(一个);
德尔= (val = = 1) & (n = = 1);%或:n <极限
瓦尔(del) = 0;
b = RunLength (val, n);
% b = [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0);

类别

找到更多的在矩阵和数组帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!