필터 지우기
필터 지우기

str2num change from 2018 to 2021

조회 수: 6 (최근 30일)
Justin Harris
Justin Harris 2023년 2월 28일
댓글: Justin Harris 2023년 2월 28일
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
Stephen23
Stephen23 2023년 2월 28일
편집: Stephen23 2023년 2월 28일
@Justin Harris: please click the paperclip button to upload a sample data file.
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})')
ans = 1×2 struct array with fields:
x
str2num('{''a'',pi}')
ans = []
There seems to be no other way to return "an array containing both numbers and alphanumeric characters".
Justin Harris
Justin Harris 2023년 2월 28일
Yes, the code must have capitalised on that bug. Thanks.

댓글을 달려면 로그인하십시오.

답변 (1개)

Simon Chan
Simon Chan 2023년 2월 28일
Not sure any change on function str2num, but I would use function str2double to try.

카테고리

Help CenterFile Exchange에서 Data Type Conversion에 대해 자세히 알아보기

태그

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by