0

在 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 的每一行中的最大值吗?

4

1 回答 1

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功能,但我想你是有原因的......

于 2013-04-08T02:13:57.000 回答