Conversion of cell element to double

2 次查看(过去 30 天)
Hello.
I want to convert a cell element to double array element. I know the command to do this is str2double but the problem is that the cell element has a number along with a letter that I want to omit. I will try to explain it through the following example.
Cell element: '123456789 a'
Double element (by using str2double): NaN
I want to retain just the numeric part of the cell element. So I would want 123456789 as the double element in the above example. Can anyone please help as to how to go about this?

采纳的回答

Azzi Abdelmalek
Azzi Abdelmalek 2015-12-28
a={'123456789 a' '455'}
b=regexp(a,'\d+','match')
c=cellfun(@(x) str2double(x{1}),b)
  3 个评论
Digvijay Rawat
Digvijay Rawat 2015-12-28
Hey I noticed right now that this piece of code works only for integer values, it simply omits decimal places. I tried changing the /d to /g and /f but then it gave an error. Could you please suggest what to do if the values are in decimals?

请先登录,再进行评论。

更多回答(1 个)

Jan
Jan 2015-12-28
Or:
a = {'123456789 a' '455'}
c = cellfun(@(x) sscanf(x{1}, '%g', 1))

类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by