在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的每一行中的最大值?
答案 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
功能,但我想你有理由......