Matlab 基于条件的矩阵子集选择

Matlab 基于条件的矩阵子集选择,matlab,matrix,Matlab,Matrix,我有下面的矩阵 test = [1 2 3 4; 2 3 4 5; 3 4 5 6; 4 5 6 7; 5 6 7 8]; 我想选择第一个条目的值介于1和3之间的行。我试过了 test(test(:,1)<3 && test(:,1)>1) test(1<test(:,1)<3) 测试(测试(:,1)1) 但这给了我一个错误。然后我试了一下 test(test(:,1)<3 &a

我有下面的矩阵

test = [1 2 3 4;
        2 3 4 5;
        3 4 5 6;
        4 5 6 7;
        5 6 7 8];
我想选择第一个条目的值介于1和3之间的行。我试过了

test(test(:,1)<3 && test(:,1)>1)
test(1<test(:,1)<3)
测试(测试(:,1)1)
但这给了我一个错误。然后我试了一下

test(test(:,1)<3 && test(:,1)>1)
test(1<test(:,1)<3)

test(1试试这个,我无法在Matlab中测试它,但它应该可以工作

test((1 < test(:,1) && test(:,1) < 3),:)
test((1
说明:

这个 (1)试验(:,1)和试验(:,1)<3) 获取一个二进制数组,其中包含符合条件的行,然后使用该数组选择行


有关更多信息,请参阅。

要逐个逻辑比较向量,必须使用&而不是&&:

test(test(:,1)<3 & test(:,1)>1,:)

我在Matlab中测试了这个。