MATLAB:UndefinedFunction error, even when file is found on path
3 views (last 30 days)
Show older comments
I have an .m file that I would like to run called bacteria2, however, I can't seem to convince MATLAB (R2016a, OSX 10.11) to run it. When I attempt to execute
bacteria2();
This results in the error message
Undefined function or variable 'bacteria2'.
In case it helps to know which error code is being triggered, the error id from
[errMsg,errId] = lasterr
is
MATLAB:UndefinedFunction
However, attempting to open the program in the editor from the command line works fine. That is,
edit('bacteria2')
opens the correct copy of 'bacteria2' in my Dropbox folder for editing. The issue seems to be something to do with the fact that there are odd characters in the path.
which('bacteria2','-all');
Gives an output of
/Users/benbratton/Dropbox/Alex L <> Ben B/bacteria2.m
Another symptom of this path issue is the inability to enable breakpoints in the file. Once the file is open in the editor, any attempt to enable a breakpoint in the editor results in the following error message
My workaround is to move the file to a different location and then manually copy it over to dropbox when I want to share changes with my collaborator. It would be great to have a better solution.
2 Comments
Guillaume
on 1 Nov 2016
I can't help about your issue, there certainly is some characters that have special meaning in the path (@ and +) but as far as I know < and > are ok.
However, I would like to point out that a much better and safer way of sharing changes with collaborators is to use a version control system. Not only do they track changes but these have diff and merge tools to show you exactly what has changed and handle conflicting changes. Matlab has built-in support for git and subversion.
Answers (1)
Walter Roberson
on 1 Nov 2016
lasterr does not change until you either overwrite it or a new error occurs. You have not shown us bacteria2 failing: what you show is the possibility that it worked fine but lasterr had happened to be set to that before bacteria2 was run.
You should also consider the possibility that MATLAB is not able to access the file directly off of Dropbox . You might need to copy the file locally.
3 Comments
Walter Roberson
on 2 Nov 2016
I have had difficulty in the past in which files in my Dropbox or Google Drive could not be fully accessed while they were there. I did not try to debug the problem, as it was much the same problem as used to occur with NFS and NFSv2 servers, race conditions, and some ioctl()'s. Networked file systems are hard to do right.
See Also
Categories
Find more on Environment and Settings in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!