在MATLAB中,给定向量A
和B
,我想找到一个向量化解决方案来选择具有最大第n个元素(即第4个)的整个向量。
A = [1, 4, 8, 10];
B = [2, 15, 2, 11];
使用max
我可以找到两个向量之间最大的第4个元素,但我想完全接受它。
C = max(A(4), B(4));
答案 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)