How to identify strings that can be converted to float numbers in a cell array?
4 次查看(过去 30 天)
显示 更早的评论
I can convert a string to double using str2double, but my goal is to identify such cells. Attached is an example file.
A = readcell('test6.xlsx');
As you can see, some cells on the 2nd column meet this criteria.
Many thanks.
采纳的回答
Les Beckham
2025-3-11
I would suggest using readtable instead of readcell
A = readcell('test6.xlsx')
You can define the variable types so Matlab knows which columns (variables) are supposed to be numeric.
opts = detectImportOptions('test6.xlsx');
opts.VariableTypes = { 'char', 'double', 'double', 'double', 'double', 'double' };
T = readtable('test6.xlsx', opts)
And, if you really want a cell array instead of a table:
C = table2cell(T)
9 个评论
Les Beckham
2025-3-11
Note that str2double will give you the same mask. It returns NaN for anything that it can't convert.
A = readcell('test6.xlsx');
mask = ~isnan(str2double(A))
Walter Roberson
2025-3-11
Yes. You specifically wanted a method that did not use str2double() (for reasons that are not clear to us).
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Spreadsheets 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!