Supongamos que tengo una función, dummy
, con 2 argumentos. Los argumentos pueden tener valores predeterminados cuando no se proporcionan en la llamada a la función. ¿Pero cómo sé que no se proporcionan argumentos?¿Cómo comprobar si se proporciona un argumento en la llamada a la función?
Sé que puedo utilizar nargin
, como este
function dummy(arg1, arg2)
if nargin < 2
arg2 = 0;
end
if nargin < 1
arg1 = 0;
end
% function body
Quiero saber si puedo comprobar si un argumento es suministrado basado en el nombre del argumento? Algo así como supplied(arg2) == false
.
Lo pregunto porque, a veces quiero agregar nuevos argumentos en la parte delantera de la lista de argumentos (ya que puede no tener un valor predeterminado), y luego tengo que cambiar todos los if nargin ...
. Si puedo verificar por nombre, no tiene que cambiar nada.
Esto es mucho mejor que nargin, porque usted no tiene que cambiar el código en caso de que el cambio el orden de los parámetros en la función. –
Por lo general, también agrego '... | isempty (arg1) ', por lo que el usuario puede omitir' arg1', pero suministrar 'arg2'. Por supuesto, si 'arg1' no puede estar vacío. – yuk
Abosultely, pero pensé que realmente no respondía la pregunta. De todos modos, edité la respuesta. También creo que tienes que usar '||' (Operador de cortocircuito) para asegurarte de que no haya ningún error si 'arg1' no existe. – Oli