如果以前从未分配过变量,我该如何声明/赋值变量?
背景:
我正在尝试找到最小化函数calculateSomeDistance(k)的k值。 最小距离和对应的k值应该可用(即在作用域内)以供后续使用。 我该如何声明minDistance,以便在将其与当前计算的距离进行比较之前检查是否已经初始化?
% How should I declare minDistance?
minDistance=undefined; % Doesn't exist.
for ki=1:K,
distance=calculateSomeDistance(ki);
if(isUndefined(minDistance) || distance < minDistance)
minDistance = distance;
minK = ki;
end
end
% Here minK and minDistance must be in scope
有没有一种方法可以在matlab/octave中给变量赋空/未定义值,并且以后测试它以便进行第一次有效分配?
PS:将minDistance初始化为非常大的数值很丑陋,并且不是我想要的。
当ki为1(即第一次通过)时,初始化minDistance是可以的,但仍然不太好。
nan
/isnan()
方法,而不是使用exist()
。 - kevlar1818