如何选择具有最大第n个元素的向量

时间:2017-06-20 10:05:55

标签: matlab vector find max vectorization

在MATLAB中,给定向量AB,我想找到一个向量化解决方案来选择具有最大第n个元素(即第4个)的整个向量。

A = [1, 4, 8, 10];
B = [2, 15, 2, 11];

使用max我可以找到两个向量之间最大的第4个元素,但我想完全接受它。

C = max(A(4), B(4));

1 个答案:

答案 0 :(得分:3)

您可以使用max的第二个返回值,即索引,如下所示:

X = [A; B];
[~, index] = max(X(:, 4));
C = X(index, :);

对于喜欢单线解决方案的人

C = A * (A(4) > B(4)) + B * (B(4) > A(4));

或者只是将其定义为函数

function getVectorWithLargestNthElement (A, B, N)
    X = [A; B];
    [~, index] = max(X(:, N));
    C = X(index, :);
end

您将能够将其用作单行:

C = getVectorWithLargestNthElement (A, B, 4)