I'm getting a really strange error when trying to use readmatrix() to load a .csv file. It tells me there's not enough input arguments!
d_obs = readmatrix(sprintf('%s/%s',NMR_path,NMR_obs_filename));
this is the command I'm using. The strange thing is that just last week, this worked perfectly, and I have not changed anything since then. If it is at all related, I also get a message "The import tool doesn't have access to read the file" when I try to open the file directly by double-clicking it in the current folder tab. I checked the files and they're not empty.
Anyone got some idea of what is going on here?

9 commentaires

Walter Roberson
Walter Roberson le 26 Nov 2020
Modifié(e) : Walter Roberson le 26 Nov 2020
Is it possible that NMR_path or NMR_obs_filename are empty?
What shows up for
which -all readmatrix
Frederikke Hansen
Frederikke Hansen le 26 Nov 2020
The filenames are not empty, and I have also tried readmatrix('filename.csv') directly, with the same error.
I get the following:
>> which -all readmatrix
C:\Program Files\MATLAB\R2020b\toolbox\matlab\iofun\readmatrix.m
Can you post the complete error message. Everything in red.
As a sidenote, the MATLAB's way to create complete path is something like this
d_obs = readmatrix(fullfile(NMR_path,NMR_obs_filename));
Frederikke Hansen
Frederikke Hansen le 26 Nov 2020
Error using readmatrix (line 157)
Not enough input arguments.
Error in invert_logdist (line 31)
d_obs = readmatrix(fullfile(NMR_path,NMR_obs_filename));
Error in Generate_and_invert (line 84)
[x,T2dist,CI,resnorm,output]=invert_logdist(data,param,opt);
The error occurs inside a try-catch block. Can you run the following line in the command window
dbstop if caught error
and then rerun your code. MATLAB will pause the code at the line where the error occurs. Show us the file and the line at which error occurs?
Try this:
which invert_logdist -all
That might give some idea of what the problem is, since I very much doubt that readmatrix does any processing.
Also, please post the MATLAB release/version you are using.
Frederikke Hansen
Frederikke Hansen le 26 Nov 2020
>> which invert_logdist -all
C:\Users\frede\Documents\MATLAB\NMR Project\Alt\Alternative Approach testing\Easy to use\invert_logdist.m
I'm using R2020b :)
Frederikke Hansen
Frederikke Hansen le 26 Nov 2020
@Ameer Hamza
What else is in the
C:\Users\frede\Documents\MATLAB\NMR Project\Alt\Alternative Approach testing\Easy to use\
directory?

Connectez-vous pour commenter.

 Réponse acceptée

Ameer Hamza
Ameer Hamza le 26 Nov 2020
Modifié(e) : Ameer Hamza le 26 Nov 2020
You have defined a function name replace() placed on path
C:\...\Thesis\emi-matlab-master\EMI_Calibration\replace.m
which is shadowing the MATLAB's built-in function named replace(). Rename your function to something else.

2 commentaires

Frederikke Hansen
Frederikke Hansen le 26 Nov 2020
OH! This makes sense, the scripts in this folder are not written by me and I only recently added it to my directory. Thank you!
Ameer Hamza
Ameer Hamza le 26 Nov 2020
I am glad to be of help!

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by