我有一个包含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)
谢谢!
答案 0 :(得分:0)
继续评论中建议的内容,您只能获取min
的第二个输出:
[~,indicesMin] = min(x(indicesCandidates,1))
如果你真的不需要minValue
。
答案 1 :(得分:-1)
当然,单行内容没有改变任何东西
[~,indices] = min(x(x(:,2) < 5,1));
真正的问题是你的意思更快?如果你描述的东西他们都是一样的。