Is there a function like string2double that can handle a numerical input?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Connor Brackley
am 21 Jan. 2019
Kommentiert: Connor Brackley
am 24 Jan. 2019
Hi!
I am importing data that sometimes imports as a string, and sometimes as a number. In all cases I want a number. Is there a function like string2double that can handle a numerical input?
Right now it works like:
>> str2num('2')
ans =
2
>> str2num(2)
Error using str2num (line 35)
Input must be a character vector or string scalar.
Ideally it would work like:
>> FunctionLikestr2num('2')
ans =
2
>> FunctionLikestr2num(2)
ans =
2
Thank you!
0 Kommentare
Akzeptierte Antwort
Steven Lord
am 21 Jan. 2019
First test if the input isnumeric. If it's not, try converting it from text data to a number.
2 Kommentare
Weitere Antworten (1)
Luna
am 21 Jan. 2019
You can do it first convert to string then convert to numeric:
str2num(string(2))
str2num(string('2'))
Both gives you numeric 2.
5 Kommentare
Stephen23
am 22 Jan. 2019
Bearbeitet: Stephen23
am 22 Jan. 2019
@Luna: unfortunately str2num hides an eval call inside itself, which is why experienced MATLAB users try to avoid using it (especially inside loops). That is why str2double is recommended. The documentation states: "str2double Similar to str2num, but offers better performance and works with string arrays and cell arrays of character vectors."
Luna
am 22 Jan. 2019
I will use recommended str2double then.
Siehe auch
Kategorien
Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!