假设我有一个包含整数和非整数的23x3矩阵。理想情况下,我希望根据以下标准删除一些矩阵行:
以上暗示将留下的行应仅包含one non-integer
和two integers
下面是我的矩阵:
A = [1 1.5 1
1 2.5 1
1 3.5 1
1 1 1.5
1 1.5 1.5
1 2 1.5
1 2.5 1.5
1 3 1.5
1 3.5 1.5
1 4 1.5
1 1.5 2
1 2.5 2
1 3.5 2
1 1 2.5
1 1.5 2.5
1 2 2.5
1 2.5 2.5
1 3 2.5
1 3.5 2.5
1 4 2.5
1 1.5 3
1 2.5 3
1 3.5 3];
我的最终输出应该是:
B = [1 1.5 1
1 2.5 1
1 3.5 1
1 1 1.5
1 2 1.5
1 3 1.5
1 4 1.5
1 1.5 2
1 2.5 2
1 3.5 2
1 1 2.5
1 2 2.5
1 3 2.5
1 4 2.5
1 1.5 3
1 2.5 3
1 3.5 3];
我还在学习,仍然试图找到自己的方向。拜托,伙计们帮我解决这个问题。谢谢!
答案 0 :(得分:1)
您的三个标准与一个标准相同:
其中,从昨天的(非常相似)问题中获取灵感可以使用
完成B = A;
B(sum(mod(B,1)~=0, 2)~=1, :) = [];
这样可以检查previous question中的非整数,然后在整行中求和,找到只传递一个元素的行。所有其他行都将被删除。
如果您确实希望将其实现为3个条件,则可以按照管道|
分隔的逻辑“或”语句完成(按您编写的顺序):
B = A;
B(sum(mod(B,1)~=0, 2)==2 | sum(mod(B,1)~=0, 2)==3 | sum(mod(B,1)==0, 2)==3, :) = [];