Me gustaría saber si es posible usar un dos puntos ":" como argumento de una función.pasando dos puntos como argumento de una función en matlab
Algo así:
function y=func(x)
if x is a colon
do this
else
do that
end
También es posible pasar de la obra clave final como argumento de una función, y también 1: fin, 3: final de 5, etc. ... Dudo que sea posible, pero me gustaría estar seguro.
Además, me sale un error raro cuando paso "1: end" como argumento de una función, no produce ningún error, pero dentro de la función, no se asigna ningún argumento (ni siquiera los otros argumentos). ¿Alguien sabe lo que sucede?
No estoy seguro de que realmente necesite hacer esto. Cuéntanos un poco más de lo que estás tratando de lograr. Ciertamente puede pasar dos puntos como una cadena 'si x ==": "...', ** fin ** se puede encontrar usando [tamaño] (http://www.mathworks.co.uk/help/techdoc /ref/size.html) y pasado como un número. – oleksii
Sí, pasarlo como una cadena sería una buena solución ... Buena idea. – Oli
Eso es lo que sucede dentro de las llamadas al operador sobrecargado '()': si llama a 'x (:)', '' 'entra a subsref o subsasgn como la cadena' ':' '. Entonces parece razonable. Use 'ischar (x) && isequal (x, ':')' en lugar de '==' embargo. El '==' arrojará errores sobre las diferencias de tamaño, y producirá falsos positivos: '==' realiza una conversión de tipo implícita, por lo que '58 == ':'' es verdadero. –