以前に割り当てられたことがない場合にのみ、変数を宣言/割り当てるにはどうすればよいですか?
コンテクスト:
kの関数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の変数にnull/未定義の値を割り当て、後でそれをテストする方法はありますか?
PS:minDistanceを非常に大きな数に初期化することは非常に醜く、私が探しているものではありません。
kiが1のとき(つまり、最初のパスで)minDistanceを初期化することは問題ありませんが、それでもうまくいきません。