找到最小条件

时间:2016-08-01 15:59:46

标签: matlab sorting matrix indexing

我有一个包含2列和多行的矩阵。我想找到第一列中最小值的索引,但仅适用于例如小于5的列2的值。

以下是一个例子:

x = [3,2;2,4;1,6];

我希望结果是索引2,因为2是第2列的min,条件是第2列小于5。

在matlab中有更快的方法吗?我目前的解决方案是:

indicesCandidates = x(:,2) < 5;
minValue = min(x(indicesCandidates,1));
indicesMin = find(x(:,1) == minValue)

谢谢!

2 个答案:

答案 0 :(得分:0)

继续评论中建议的内容,您只能获取min的第二个输出:

[~,indicesMin] = min(x(indicesCandidates,1))

如果你真的不需要minValue

答案 1 :(得分:-1)

当然,单行内容没有改变任何东西

[~,indices] = min(x(x(:,2) < 5,1));

真正的问题是你的意思更快?如果你描述的东西他们都是一样的。