如何才能聲明/分配一個變量,如果它以前從未分配過?Matlab:初始化變量,如果未定義
語境:
我試圖得到k最大限度地減少k的函數calculateSomeDistance(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是可以的,但仍然不好。
我會在回答中使用'nan' /'isnan()'路線,而不是'exist()' – kevlar1818 2012-08-03 16:01:01