Why do I need to run a file several times in MATLAB before it stops throwing an error?

2 次查看(过去 30 天)
I have been trying to debug this weird bug where I run a script in matlab and it says that it cannot find some function that I have clearly defined in a folder and also obviously imported to the running script. However, after running the script a few times it suddenly accepts it knows where the location of my function is and runs. I find this really strange because that shouldn't be happening because imports are deterministic functions, so I have no idea why running it multiple times should make a difference.
----
To reproduce my bug you can find my code in my project's [github page][1] https://github.com/brando90/research. Go/cd to the folder:
`research/HBF_mat_lib/HBF1_multivariant_regression/om_simulations/h_add_cv`
and
run:
`test_debug_script`
in MATLAB.
It show throw an error:
Undefined function 'learn_HBF1_SGD' for input
arguments of type 'HBF1_parameters'.
Error in get_best_trained_hbf1_model (line 37)
[ mdl_params, errors_train, errors_test ] =
train_func( X_train, y_train, mdl_params,
iterations,visualize, X_test,y_test,
eta_c,eta_t, sgd_errors);
Error in test_debug_script (line 11)
get_best_trained_hbf1_model(slurm_job_id,
task_id)
Error in run (line 96)
evalin('caller', [script ';']);
but if you try running it enough times it runs as it should.
----
Things I've tried to clear this bug is clear my matlab environment, restore my path to normal, at this point I have no idea what I can do because I have also printed out what path is before executing stuff and the folder seems to be in my path variable. At this point I have no idea what I can do and why after running a few times it runs, it should ALWAYS fail but it does not...
[1]: https://github.com/brando90/research

回答(1 个)

Image Analyst
Image Analyst 2016-2-15
Why do you use evalin()? Somehow I manage to write hundreds of MATLAB programs without ever needing to use that function.
Did you use cd() in your program? It sounds like what the FAQ describes: http://matlab.wikia.com/wiki/FAQ#Where_did_my_file_go.3F_The_risks_of_using_the_cd_function.
Attach your file(s) here with the paperclip icon. Make it easy for us. We don't like having to go to some third party external site to get your code when we're already here in MATLAB Answers and could get it conveniently right here. (Call me lazy, but I didn't go get your code.) Make it easy to help you not hard.
  3 个评论
Brando Miranda
Brando Miranda 2016-2-15
The error was found apparently I am trying to reference a function and get its handle before it exists...but for some reason the error didn't point to that line in the code :/

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Startup and Shutdown 的更多信息

标签

尚未输入任何标签。

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by