Usuario anónimo
Error MATLAB: Función o método X indefinido para argumentos de entrada de tipo 'double'
Soy un nuevo usuario de Matlab, ¿pueden ayudarme?
Tengo el siguiente código en un archivo .M:
function f = divrat(w, C)
S=sqrt(diag(diag(C)));
s=diag(S);
f=sqrt(w'*C*w)/(w'*s);
He almacenado este archivo (divrat.M) en la ruta normal de Matlab, y por lo tanto I'm suponiendo que Matlab leerá la función cuando it's de partida y que esta función por lo tanto debe estar disponible para su uso.
Sin embargo, cuando escribo
>> divrat(w, C)
Me sale el siguiente error Error Undefined function or method 'divrat' for input arguments of type 'double'.
¿Qué me dice el mensaje de error, no veo ningún error en el código o en la llamada a la función?
19
3
El código de error indica que no se puede encontrar la definición de la función. Asegúrese de que está llamando a la función desde el mismo espacio de trabajo en el que está almacenado el fichero
divrat.m
. Y asegúrese de que la funcióndivrat
no es una subfunción, debe ser la primera declaración de función en el archivo. También puede intentar llamar a la función desde el mismo ficherodivrat.m
para ver si el problema está en la selección del espacio de trabajo o en la función.Por cierto, ¿por qué no has dicho simplemente
¿No sería lo mismo?
Además, nómbralo
divrat.m
, nodivrat.M
. Esto no debería importar en la mayoría de los sistemas operativos, pero quién sabe...También puedes probar si matlab puede encontrar una función usando el comando
which
, por ejemploLa función en sí es código matlab válido. El problema debe ser otro.
Intente llamar a la función desde el directorio en el que se encuentra o añada ese directorio a su ruta de búsqueda utilizando
addpath('pathname')
.