以前に割り当てられたことがない場合にのみ、変数を宣言/割り当てることはできますか?Matlab:定義されていない場合はInit変数
コンテキスト:
私は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 /オクターブ、それのために、後の試験では、変数へのナル/未定義の値を割り当てる方法はありますか?
PS: 非常に大きな数値にminDistanceを初期化するのは、私が探しているものではなく、非常に醜いです。
kiが1のとき(つまり最初のパスで)のminDistanceを初期化することはOKですが、それでもいいとは限りません。あなたは変数がexistを使用して存在しているかどうかを確認することができます
私は、 'exist()'ではなく 'nan' /' isnan() 'ルートに行きます。 – kevlar1818