1

我想用 C# 实现以下用 Matlab 编写的代码:

 mask=find(array1>1 | array2>2 | array3>3 );
array1(mask)=[];

这意味着“找到array1中> 1的所有元素或array2中的所有元素> 2或array3中的所有元素> 3,并将它们从array1中取出”

如果我只想实现第一个条件(array1>1),我想我可以这样做:

array1=array1.Where( val => val < 1).ToArray();

有什么办法可以满足所有三个条件吗?

4

1 回答 1

3

您可以分别在三个数组中找到匹配的元素,然后将结果序列连接起来:

var mask = array1.Where(i => i > 1)
   .Concat(array2.Where(i => i > 2))
   .Concat(array3.Where(i => i > 3));

var result = array1.Except(mask).ToArray();
于 2013-10-12T13:28:10.890 回答