根据条件选择矩阵子集

时间:2015-09-04 09:24:28

标签: 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)

但这并没有给我想要的结果2 3 4 5。有没有办法获得这个是Matlab?

2 个答案:

答案 0 :(得分:2)

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

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

说明:

此     (1&lt; test(:,1)&amp;&amp; test(:,1)&lt; 3) 获取一个包含符合条件的行的二进制数组,然后使用它来选择行。

有关详细信息,请参阅here

答案 1 :(得分:1)

为了逐个逻辑地比较矢量,你必须使用&amp;而不是&amp;&amp;:

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

这就产生了答案:

 2     3     4     5