matlab中如何删除矩阵中特定的几个元素给定一个矩阵[9,8,8,1,2;6,7,3,1,5;9,9,9,9,3;4,5,6,5,7;7,6,7,7,7]我想要去除该矩阵中行方向“连续三个或以上(4个,5个)数值大于5的部分”,也就是最终变为[0,0,0,1
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 08:14:42
matlab中如何删除矩阵中特定的几个元素给定一个矩阵[9,8,8,1,2;6,7,3,1,5;9,9,9,9,3;4,5,6,5,7;7,6,7,7,7]我想要去除该矩阵中行方向“连续三个或以上(4个,5个)数值大于5的部分”,也就是最终变为[0,0,0,1
matlab中如何删除矩阵中特定的几个元素
给定一个矩阵[9,8,8,1,2;6,7,3,1,5;9,9,9,9,3;4,5,6,5,7;7,6,7,7,7]
我想要去除该矩阵中行方向“连续三个或以上(4个,5个)数值大于5的部分”,也就是最终变为[0,0,0,1,2;6,7,3,1,5;0,0,0,0,3;4,5,6,5,7;0,0,0,0,],怎么做?
matlab中如何删除矩阵中特定的几个元素给定一个矩阵[9,8,8,1,2;6,7,3,1,5;9,9,9,9,3;4,5,6,5,7;7,6,7,7,7]我想要去除该矩阵中行方向“连续三个或以上(4个,5个)数值大于5的部分”,也就是最终变为[0,0,0,1
可能我的方法比较笨一些,但可以实现你的目的,可以参考下:
a = [ 9 8 8 1 2
6 7 3 1 5
9 9 9 9 3
4 5 6 5 7
7 6 7 7 7 ];
larger5 = a > 5; % 通过判断条件得到逻辑0 1矩阵
rulr = logical( [ 1 1 1 ] ); % 用来检测的标尺
[ Rows Cols ] = size( a );
for i = 1 : Rows
for j = 1 : Cols - 2
% 用标尺来检测连续的三个数是否都大于5
if( all( larger5( i, j : j + 2 ) & rulr ) )
a( i, j : j + 2 ) = 0;
end
end
end
结果:
a =
0 0 0 1 2
6 7 3 1 5
0 0 0 0 3
4 5 6 5 7
0 0 0 0 0