从矩阵中一次性删除多个匹配值的元素

72次浏览(最近30天)
Marc到来
Marc到来 2020年5月14日
编辑: 斯蒂芬。 2020年5月14日
大家好,
我想知道是否有可能从一个矩阵中删除某些元素,匹配一个特定的值,而不使用索引?
你可以对单个值这样做:
(= = cerain_value) = [];
(< cerain_value) = [];
但是,如果我想删除多个值呢?
如:
=(1、2、3、4、5、3、4、6,7,8,1,2,4,5,6,8,7日,6日,3,4,1,2,3,4,5];
我想删除每一个1,3和5,不需要任何循环,也不使用下标而不是值。
这怎么可能?
一个(= =(1、2、5))= [];
不工作。
非常感谢。
致以最亲切的问候
马克

答案(2)

Mehmed萨德
Mehmed萨德 2020年5月14日
编辑:Mehmed萨德 2020年5月14日
=(1、2、3、4、5、3、4、6,7,8,1,2,4,5,6,8,7日,6日,3,4,1,2,3,4,5];
R = [1 2 5];
L = arrayfun (@ (x) = = x, R,“大学”, 0);
(任何(猫(3 L {:}), 3)) = [];

斯蒂芬。
斯蒂芬。 2020年5月14日
编辑:斯蒂芬。 2020年5月14日
简单的MATLAB解决方案就是用 ismember 要生成索引:
> > =(1、2、3、4、5,3,4,6,7,8,1,2,4,5,6,8、7、6、3、4,1,2,3,4,5];
>> A(ismember(A,[1,3,5])) = []
一个=
8
2
4
2
7
2
6
4
6
4
7
4
8
6
4

标签

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!