我无法在MATLAB中找到如何执行以下操作,感谢任何帮助:
实施例: 如果X是
2 0 1
3 8 6
7 2 5
Y将是
2 0 1
7 2 5
答案 0 :(得分:1)
max
函数适用于这样的矩阵:
如果A是矩阵,则max(A)将A的列视为向量,返回 包含每列最大元素的行向量。
这意味着你需要使用x的转置。
x = [2 0 1;
3 8 6;
7 2 5];
xt = x';
[maxVal, maxIdx] = max(xt);
现在,如果您的maxIdx
值为1,则表示第一个值最大。
y = x(maxIdx == 1, :);
会为您提供新的矩阵。
答案 1 :(得分:1)
您正在寻找bsxfun
和all
:
X = [
2 0 1
3 8 6
7 2 5];
Y = X( all(bsxfun(@gt, X(:,1), X(:,2:end)),2), :)