NaN from str2double('1 2 3') on Matlab 2020a

3 vues (au cours des 30 derniers jours)
Dawid Strzelczyk
Dawid Strzelczyk le 16 Oct 2020
Commenté : James Tursa le 16 Oct 2020
Hi
str2double('1 2 3') returns NaN on Matlab 2020a but works fine on Matlab 2018b & Matlab 2016b (returns: 1 2 3).
How to convert a string of numbers to numbers in the newest Matlab version?
Best,
Dawid
  1 commentaire
Stephen23
Stephen23 le 16 Oct 2020
For all MATLAB versions the most efficient soluton is:
str = '1 2 3';
vec = sscanf(str,'%f')
Avoid str2num, it contains a hidden eval call...

Connectez-vous pour commenter.

Réponse acceptée

Bruno Luong
Bruno Luong le 16 Oct 2020
Modifié(e) : Bruno Luong le 16 Oct 2020
"works fine on Matlab 2018b"
Are you sure?
>> version
ans =
'9.5.0.1298439 (R2018b) Update 7'
>> str2double('1 2 3')
ans =
NaN
>> str2num('1 2 3')
ans =
1 2 3
>>
  4 commentaires
Bruno Luong
Bruno Luong le 16 Oct 2020
AFAIK str2double never works on string with multiple numbers.
James Tursa
James Tursa le 16 Oct 2020
One more data point, PCWIN:
>> version
ans =
'9.5.0.944444 (R2018b)'
>> str2double('1 2 3')
ans =
NaN
>> str2num('1 2 3')
ans =
1 2 3

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Environment and Settings dans Help Center et File Exchange

Tags

Produits


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by