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

3 visualizzazioni (ultimi 30 giorni)
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 Commento
Stephen23
Stephen23 il 16 Ott 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...

Accedi per commentare.

Risposta accettata

Bruno Luong
Bruno Luong il 16 Ott 2020
Modificato: Bruno Luong il 16 Ott 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 Commenti
Bruno Luong
Bruno Luong il 16 Ott 2020
AFAIK str2double never works on string with multiple numbers.
James Tursa
James Tursa il 16 Ott 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

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Environment and Settings in Help Center e File Exchange

Prodotti


Release

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by