Error message while using Fullfile to write .m file in a specific folder
5 views (last 30 days)
Show older comments
Hello,
I have some troubles using fullfile function in order to store outputs in a specific folder.
Error using fullfile (line 61) An unknown error occurred in FULLFILE while constructing the file specification.
Error in Test_Export (line 14) f=fullfile(myFolder,fileID);
Caused by: Error using horzcat The following error occurred converting from logical to char: Error using char Conversion to char from logical is not possible.
The code i'm using is attached. Any ideas please to fix it?
Thank you in advance for your help
Fatzo
0 Comments
Accepted Answer
Guillaume
on 28 Apr 2015
There are two problems with your code:
myFolder=mkdir('C:\Users\fatima.smime\Documents\MATLAB\Pro...')
myFolder is not the name of the folder you've created, it's just the status code telling you whether or not the folder creation was succesful. This is possibly what you meant:
myfolder = fullfile('C:\Users\fatima.smime\Documents\MATLAB\Programmes These FZS\Plaque\Modele direct plaque\Avril 2015\Simulations_MD', filename);
mkdir(myfolder);
Secondly, as pointed out by pfb,
f = fullfile(myFolder, 'fileID');
should be
f = fullfile(myFolder, fileID);
While the above two should stop the error from happening, your code is very confusing. Is filename the name of a file or a folder? It sounds like the name of a file, yet you use it to create a folder. Secondly, why do you have \n in some of your num2str conversion. Thankfully they're ignored as that would cause problem later in your code.
Finally, I find sprintf much easier to read than num2str + string concatenation. It's also more efficient:
filename= sprintf('pas%dfreq%gFech%gNtot%d', pas, f0, 1/Tech, Ntot1);
8 Comments
Guillaume
on 29 Apr 2015
It should have been obvious that fullile was a typo and that it should have read fullfile. This is after all the title of your question.
I've now fixed the typo.
99% of the errors of the type undefined function xxx for input argument of type yyy are due to the function xxx not being found either because it is mispelt or because it's not on the path. It's rarely to do with the arguments.
More Answers (1)
pfb
on 28 Apr 2015
I think it might have to do with this: in your code you define the name of the file in a char variable
fileID=['tilt',num2str(tiltd,'%-f'),'prof',num2str(depth_d),'.m'];
which looks something like 'tiltFFFFfprofDDDD.m'
but then, when you call fullfile, you do not use that char variable (fileID), but 'fileID'
f=fullfile(myFolder,'fileID');
I think you meant
f=fullfile(myFolder,fileID);
2 Comments
pfb
on 28 Apr 2015
ok... can you post a mat file containing the variables "myFolder" and "fileID" you feed to fullfile?
The path in your code is for a Windows system. Apologies for the silly question, but are you running your code on a Windows machine?
Finally, formatting the code bits in your posts would make them more readable.
See Also
Categories
Find more on Entering Commands in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!