我想在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();
有什么方法可以满足所有这3个条件吗?
答案 0 :(得分: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();