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

6 次查看(过去 30 天)
Hi,
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
  2 个评论
Stephen23
Stephen23 2020-4-6
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 2020-4-6
编辑:Curious Mind 2020-4-6
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?
Thanks!

请先登录,再进行评论。

回答(1 个)

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

类别

Help CenterFile Exchange 中查找有关 Desktop 的更多信息

标签

产品


版本

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by