Problem with readtable MATLAB R2020a+

111 vues (au cours des 30 derniers jours)
Paolo Oliveri
Paolo Oliveri le 15 Juil 2021
Modifié(e) : Paolo Oliveri le 19 Juil 2021
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 commentaires
Mathieu NOE
Mathieu NOE le 16 Juil 2021
W 10
Paolo Oliveri
Paolo Oliveri le 16 Juil 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?

Connectez-vous pour commenter.

Réponse acceptée

Jeremy Hughes
Jeremy Hughes le 17 Juil 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 commentaire
Paolo Oliveri
Paolo Oliveri le 19 Juil 2021
Modifié(e) : Paolo Oliveri le 19 Juil 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

Connectez-vous pour commenter.

Plus de réponses (1)

Christopher McCausland
Christopher McCausland le 15 Juil 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 commentaire
Paolo Oliveri
Paolo Oliveri le 15 Juil 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.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by