Ejecución de un archivo .m desde una función compilada por MATLAB
Digo que compilo la siguiente función simple en MATLAB
function foo(path_to_m_file)
disp([' Running ' path_to_m_file])
run(path_to_m_file);
end
La funciónfoo
solo toma un camino hacia una.metr file e intenta ejecutarlo.
Sin embargo, cuando realmente intento ejecutarfoo
después de compilarlo:
./run_foo.sh $path_to_run_time $path_to_m_file
dóndepath_to_m_file
es un simple.metr archivo con una declaración como:
a = 2;
Obtuve el siguiente error
Error using ==> run
MATLAB:run:FileNotFound
Sin embargo, sé quefoo
obtiene elcorrect camino. Por ejemplo, si trato de reemplazar la línea conrun
por las siguientes dos líneas enfoo
fID = fopen(conf_file, 'rt');
first_line = textscan(fID, '%s', Inf, 'Delimiter', '\n');
foo
lee la línea correspondiente de la.m
archivo. Entonces el.m
file está allí, y el motor MATLAB puede "verlo". De hecho, incluso puedo ejecutareval
en cadenas leídas contextscan
.
¿Por qué recibo el error anterior? ¿Por qué nofoo
ejecuta el.m
¿archivo
Actualizar Vea la respuesta de @ estrictamenterude27 a continuación para lo que parece ser una respuesta a esta pregunta.
Si lo anterior no funciona. ¿Hay alguna manera de obtener una función compilada con MATLAB para ejecutar un.metr archivo que puede haber cambiadodespué compilando la función original?La motivación para mi segunda pregunta: Me gustaría tener la capacidad de "actualizar" un.m
archivo que forma parte del proyecto sin tener que volver a compilar el proyecto completo. Cualquier idea para esto sería muy apreciada.