Wie kann ich eine Variable nur dann deklarieren/zuweisen, wenn sie vorher noch nie zugewiesen wurde?Matlab: Init Variable wenn undefined
Kontext:
Ich versuche, k zu finden, die eine Funktion calculateSomeDistance (k) von k minimiert. Der Mindestabstand und der entsprechende k-Wert sollten zur späteren Verwendung verfügbar sein (dh im Umfang). Wie soll ich minDistance deklarieren, damit ich prüfen kann, ob es bereits initialisiert wurde, bevor es mit der aktuell berechneten Distanz verglichen wird?
% 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
Gibt es eine Möglichkeit, einen null/undefinierten Wert einer Variablen in Matlab/Oktave und später Test für es zuweisen, um die erste gültige Zuordnung zu machen?
PS: Initializing MinDistance zu einer sehr großen Anzahl ist sehr hässlich, und nicht das, was ich suche.
Initialisierung der minDistance, wenn ki 1 ist (dh im ersten Durchgang) ist in Ordnung, aber immer noch nicht nett.
Ich würde die 'nan' /' isnan() 'Route in der Antwort gehen, anstatt' exist() ' – kevlar1818