¿Cómo puedo declarar/asignar una variable solo si nunca se ha asignado antes?Matlab: variable Init si no está definida
Contexto:
Estoy tratando de encontrar k que minimiza una función calculateSomeDistance (k) de k. La distancia mínima y el valor k correspondiente deben estar disponibles (es decir, en el alcance) para su uso posterior. ¿Cómo debo declarar minDistance para poder verificar si ya se ha inicializado antes de compararlo con la distancia calculada actualmente?
% 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
¿Hay una manera de asignar un valor nulo/valor indefinido a una variable en Matlab/octava y más tarde la prueba de que con el fin de hacer la primera asignación válida?
PS: Inicializar minDistance a un número muy grande es muy feo, y no es lo que estoy buscando.
Inicializando minDistance cuando ki es 1 (es decir, en la primera pasada) está bien, pero aún no es agradable.
Iría por la ruta 'nan' /' isnan() 'en la respuesta, en lugar de' existir() ' – kevlar1818