如何在矩阵w / o max函数的每一行中找到最大值?

时间:2013-04-08 02:07:37

标签: matlab

在MATLAB中,如果我有:

A = [1 2 3 4; 2 3 4 5; 4 8 9 10];
[N M] = size(A);
c = zeros(N,1);
for n=1:N;
    for m=1:M;
        c(n) = ?;
    end
end

我该怎样替换?使用它会在不使用max函数的情况下找到A的每一行中的最大值?

1 个答案:

答案 0 :(得分:0)

A = [1 2 3 4; 2 3 4 5; 4 8 9 10];
[N M] = size(A);
c = A(:,1); % modified per Eitan's suggestion
for n=1:N;
    % c(n) = A(n,1); % commented out per Eitan's suggestion.
    for m=1:M;
        c(n) = (c(n)<A(n,m))*A(n,m) + (c(n)>=A(n,m))*c(n);
    end
end

只有一个逻辑语句是真的,因此最小值将被更新,或保持不变。超级尴尬...但感谢Eitan T,不再需要额外的线路。一个人希望内部循环从2开始,但这个代码不需要工作(并且最小化了给定原始代码所需的更改。)

不确定为什么你使用min功能,但我想你有理由......