MATLAB can't find my file

I'm trying to read in an excel spreadsheet and I can't get it to do it.
I put the spreadsheet in the MATLAB home directory, then I put this: -
M = xlsread('Psych_anon_mine.xlsx');
And I get the error message: -
??? Error using ==> xlsread at 214 XLSREAD unable to open file Psych_anon_mine.xlsx. File /Users/Tom**********/Documents/MATLAB/Psych_anon_mine.xlsx not found.
(The stars are just my last name)
Error in ==> Ass_2_data_A at 3 M = xlsread('Psych_anon_mine.xlsx');
Any help would be greatly appreciated

 Accepted Answer

(Looks like you are using OS-X)
At the MATLAB command prompt, try
!ls ~/Documents/MATLAB/Psych_anon*
and see if it finds the file. Perhaps there is a hidden extension.

14 Comments

Tom
Tom on 12 Dec 2012
Moved: Voss on 9 Nov 2022
Yes thanks that worked. I just copied and pasted the address from that and it's working now. Many thanks.
Walter Roberson
Walter Roberson on 12 Dec 2012
Moved: Voss on 9 Nov 2022
Was there a hidden extension? Or was there a typo in the file name?
Hi, I am also using OS and I have similar problem with Matlab. I have tried it but it gives me this error "No such file or directory". I would be grateful if you could help me.
Which directory is your spreadsheet in? What is your current directory at the time you give the xlsread() command? Please show the commands that you use to construct the file name, and your xlsread command.
I am using importdata command for a txt file. In fact, when I use uigetfile it does not import the data but if I use importdata('filename') it works.
@Alireza Kharazmi: uigetfile does not import data, it returns the selected file name. This is clearly explained in the documentation.
Sorry, I am not sure if I answered your question properly. I am confused now. I am using three open file with three different push buttons. I am starting from the same directory where .m file is placed. The first push button is uigetfile and then cd command to get into the directory of interest and then importdata some data. Second push buttons is another uigetfile and then importdata some other files. These two steps are okay. The third push button is a uigetfile but the file of interest is inside another folder in the current directory. At this point I get this error "Unable to open file.".
Instead of cd'ing around, you should use fullfile() to construct complete file names.
My apologies for late response, thank you very much for your help Walter. My problem is fixed now.
Hi Walter,
I am having a similar problem with mzxmlread. I am using OS-X and the 2022 version of Matlab. I am following the same syntax as online and I tried using your command code and it still told me that it couldn't find the file. I don't know what to do. Will you please help me out?
Best,
Armando
With the information you have given us, we cannot be sure that the file is intended to be in the current directory, or if it is intended to be in a different folder. If it is possibly in another folder you need to specify the path to the file, possibly using fullfile() to construct the path that is to be passed in.
[filename, filepath] = uigetfile('*.mzXML');
if isnumeric(filename); return; end %user cancel
fullname = fullfile(filepath, filename);
out = mzxmlred(fullname);
If the file intended to be in your current directory then you should verify that the file exists with that exact name, such as using
ls trial*
@Armando Torres try it this way
fullFileName = fullfile(pwd, 'trial1.mzxml');
if ~isfile(fullFileName)
warningMessage = sprintf('Error:\n"%s"\nwas not found. Please locate it.', fullFileName)
uiwait(warndlg(warningMessage));
% Have user browse for a file, from a specified "starting folder."
% For convenience in browsing, set a starting folder from which to browse.
startingFolder = pwd; % or 'C:\wherever';
if ~isfolder(startingFolder)
% If that folder doesn't exist, just start in the current folder.
startingFolder = pwd;
end
% Get the name of the file that the user wants to use.
defaultFileName = fullfile(startingFolder, '*.mz*');
[baseFileName, folder] = uigetfile(defaultFileName, 'Select a file');
if baseFileName == 0
% User clicked the Cancel button.
return;
end
fullFileName = fullfile(folder, baseFileName)
end
out = mzxlmread(fullFileName)
I’ll give it a try later on tonight! Thank you both so much. I will update you with what happens
It worked! Thank you both

Sign in to comment.

More Answers (0)

Categories

Products

Tags

Community Treasure Hunt

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

Start Hunting!