在MATLAB中,给定矢量A
和B
,我想找到一个矢量化解来选择具有最大第n个元素(即第4个)的整个矢量。如何选择具有最大第n个元素的矢量
A = [1, 4, 8, 10];
B = [2, 15, 2, 11];
使用max
我可以找到两个向量之间最大的第4个元素,但我想完全采用它。
C = max(A(4), B(4));
在MATLAB中,给定矢量A
和B
,我想找到一个矢量化解来选择具有最大第n个元素(即第4个)的整个矢量。如何选择具有最大第n个元素的矢量
A = [1, 4, 8, 10];
B = [2, 15, 2, 11];
使用max
我可以找到两个向量之间最大的第4个元素,但我想完全采用它。
C = max(A(4), B(4));
您可以使用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)
应该发生什么,如果A(4)== B(4)? –