MATLAB Answers

Error using cd Cannot CD to ...(Name is nonexistent or not a directory)

10 views (last 30 days)
Curious Mind
Curious Mind on 6 Apr 2020
Answered: Maadhav Akula on 13 Apr 2020
I have the following code
oldp = uicontrol(fig,...
'Style', 'Push',...
'BackgroundColor', [1 1 .7],...
'units', 'normalize',...
'Position', [0 .333 1 .333],...
'String', 'Open an existing Project',...
'Callback', [...
' [projfile,projpath] = uigetfile(''*.prj'',''Select Project File '');',...
' cd(projpath);',...
' load(projfile,''cp'',''-mat'');',...
' close(gcf);',...
' clear projpath projfile newp oldp stringforhelp ui*; '...
I am getting this error:
Error using cd
Cannot CD to C:\...(Name is nonexistent or not a directory)
Any idea? thanks


Stephen Cobeldick
Stephen Cobeldick on 6 Apr 2020
Do NOT define the callback as a character vector. The MATLAB documentation
states "Defining a callback as a character vector is not recommended". Specifying the callback with a function handle is recommended, and will make debugging your code much easier.
Do NOT use cd just to read/write data files. All MATLAB functions that read/write data files accept absolute/relative filenames: you should use fullfile to generate the absolute/relative filename and pass that to load (or whatever function you use for reading/writing data files).
Using clear is rarely required in code, and is almost always overused by beginners.
Curious Mind
Curious Mind on 6 Apr 2020
Hi Stephen, I will admit I am a beginner in Matlab. The code worked with no issues in Matlab v2014a. I am now using 2019b and I am getting the error. Any help with how my code should look like?

Sign in to comment.

Answers (1)

Maadhav Akula
Maadhav Akula on 13 Apr 2020
You can write the following lines in your callback function:
[projfile,projpath] = uigetfile('*.prj','Select Project File ');
abs_filepath = fullfile(projpath,projfile);
Hope this helps!


Sign in to comment.





Community Treasure Hunt

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

Start Hunting!