str2num change from 2018 to 2021
1 view (last 30 days)
Show older comments
I have some code to open and use character and number data from a csv file. It successfully runs in Matlab 2018b but no longer works in 2021. Can anyone suggest what needs to change to get this working in matlab 2021? The code is:
text = fileread([csv file name]);
lines = strread(text, '%s','delimiter','\n')
for r = 1:length(lines)
Full_Array(r,:) = str2num(cell2mat(lines(r)));
end
The above lines of code would take open the csv file and create an array containing both numbers and alphanumeric characters. It seems that something has changed about the str2num function so it always returns empty cells.
Thank you.
Justin
2 Comments
Stephen23
on 28 Feb 2023
Edited: Stephen23
on 28 Feb 2023
I remember that STR2NUM has an interesting bug / feature that allowed it to return structure arrays (and function handles and more recently tables, etc.), but cell arrays and char arrays (and more recently strings) are explicitly checked for and are not returned. So your code must have relied on this (most likely) unintended, undefined, undocumented behavior:
str2num('struct(''x'',{''a'',pi})')
str2num('{''a'',pi}')
There seems to be no other way to return "an array containing both numbers and alphanumeric characters".
Answers (1)
See Also
Categories
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!