Problem with readtable MATLAB R2020a+

79 views (last 30 days)
Hello,
I am trying to read a basilar table in MATLAB.
I wrote some scripts and I had no problem until version 2020a, where I see that there are huge changes in tables management functions.
Here are the call to readtable that I always use:
readtable(devices_file, 'Delimiter', ',', 'Format','%q%q')
Starting from R2020a, the readtable fails with this strange error:
Error using readtable (line 318)
Undefined function 'isnan' for input arguments of type 'string'.
Note: readtable detected the following parameters:
'HeaderLines', , 'ReadVariableNames', true
Also readtable with no arguments fails. I inspected into the core and the fail seems to go deep and it is correlated to DelimitedTextImportOptions or some other similar function.
Using detectImprtOptions the error is similar:
detectImportOptions(devices_file, 'Delimiter', ',', 'Format','%q%q')
also here its the same omitting the arguments.
Check for incorrect argument data type or missing argument in call to function 'isnan'.
Error in detectImportOptions (line 381)
throw(ME)
Do you know how to workaround this issue or if it is a bug that has to be resolved?
Sincerely,
Paolo Oliveri
  6 Comments
Paolo Oliveri
Paolo Oliveri on 16 Jul 2021
Ok, so maybe the problem is related to Linux releases only. Can anyone that runs MATLAB on Linux or MATLAB staff try to reproduce the problem?

Sign in to comment.

Accepted Answer

Jeremy Hughes
Jeremy Hughes on 17 Jul 2021
My best guess is that there's something installed on the path that conflicts with a function//variable that readtable is using internally. I am basing that on the fact that this doesn't seem to be happening with every user.
One way to test this, is to make sure you're using only the default path: https://www.mathworks.com/help/matlab/ref/path.html
A more precise way is to set:
>> dbstop if caught error
Then run the command, using dbcont until you hit the line that's issuing the error "Undefined function 'isnan' for input arguments of type 'string'."
Then, on that line, look at all the names of all the functions/variables and call
>> which -all <each-thing-on-that-line>
If you see something "shadowed" that's likely the problem.
You can also try technical support.
  1 Comment
Paolo Oliveri
Paolo Oliveri on 19 Jul 2021
Edited: Paolo Oliveri on 19 Jul 2021
Hello,
thank you for your answer! In fact there was a previous release of
replace.m
function in my path (I did not know that there were) that interfered with the readtable routines. I removed it and all turned working.
Thank you!
Paolo Oliveri

Sign in to comment.

More Answers (1)

Christopher McCausland
Christopher McCausland on 15 Jul 2021
Hi Paolo,
I am hoping I have an answer for you however I am working in MATLAB 2020b, it is post 2020a so I think the changes should match up.
I believe the error message:
Undefined function 'isnan' for input arguments of type 'string'.
is generated as MATLAB is looking for the first input (i.e. the file name) in the readtable function to be a string, try changing to this;
readtable('devices_file.csv', 'Delimiter', ',', 'Format','%q%q') // note the added '' and .csv in the first input
this should hopefully prevent the isnan error, lastly double check the file name as the attached file was called "devices" and not "devices_file"
Let me know if this helps!
Christopher
  1 Comment
Paolo Oliveri
Paolo Oliveri on 15 Jul 2021
Hello,
thank you for your answer.
I did not paste the code completely, only the readtable line. There are other lines of code where I define de variable "devices_file". So this is not the problem.
Please also remember that I am using also MATLAB R2019b and all of my script work without any problem.

Sign in to comment.

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!