What's difference between str2num and str2double for converting an array to numeric values?
21 views (last 30 days)
Show older comments
ardeshir moinian on 3 Aug 2021
Commented: ardeshir moinian on 4 Aug 2021
Hi, I have a 'char' array and want to convert it to a numeric array. when I use the function
I get the following error:
"Error using str2num (line 35)
Input must be a character vector or string scalar."
but I can change the format of the array using
can someone tell me why does the latter work?
Vignesh Murugavel on 4 Aug 2021
str2num(chr) converts a character array or string scalar to a numeric matrix. The input can include spaces, commas, and semicolons to indicate separate elements. If str2num cannot parse the input as numeric values, then it returns an empty matrix.
The str2num function does not convert cell arrays or nonscalar string arrays, and is sensitive to spacing around + and - operators.
str2num() contains a call to eval(), which means that if your string has the same form as an array (e.g. with semicolons) then it is simply executed and the resulting array is returned. The problems with str2num() are that it doesn’t support cell arrays, and that because it uses an eval() function, wierd things can happen if your string includes a function call. str2double() is supposedly faster as well. So the general rule seems to be, use str2double() unless you are wanting to convert a string array of numbers to a numerical array.
There is one catch though- if you are converting a single number from a string to a number, then it would SEEM like str2num() and str2double() are interchangable, drop in replacements. However, if the string is not a number, they behave differently
Stephen23 on 4 Aug 2021
"...unless you are wanting to convert a string array of numbers to a numerical array"
in which case SSCANF is much faster than STR2NUM.
"So the general rule seems to be"
use SSCANF if you can!
More Answers (0)
Find more on Data Type Conversion in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!