extract numbers from cell array

101 views (last 30 days)
alex
alex on 10 May 2014
Commented: Sebastian Lopez on 19 Apr 2023
hello!
i have this cell array wich may have many cells,and not only three as here.
A = {'jdldi'; 'jdks5.4555h'; 'f67'}
i want to extract only the numbers,and show them as one number
for this example i want the result to be 5.455567
any help please?
Thank you very much!
  2 Comments
alex
alex on 10 May 2014
in the first cell:no numbers
in the second cell:5.4555
in the third cell:67
so,i want to merge all the numbers from every cell and take the number 5.455567

Sign in to comment.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 10 May 2014
A = {'jdldi'; 'jdks5.4555h'; 'f67'}
b=regexp(A,'\d+(\.)?(\d+)?','match')
out=str2double([b{:}])
  3 Comments
Azzi Abdelmalek
Azzi Abdelmalek on 10 May 2014
Edited: Azzi Abdelmalek on 10 May 2014
A = {'jdldi'; 'jdks5.4555h'; 'f67'}
b=regexp(A,'\d+(\.)?(\d+)?','match')
out=strjoin([b{:}],'')
alex
alex on 10 May 2014
thank you very much Azzi! have a nice day!

Sign in to comment.

More Answers (2)

Andrei Bobrov
Andrei Bobrov on 10 May 2014
A1 = regexp(A,'[\d*\.]*\d*','match')
A2 = [A1{:}]
out = str2double(strcat(A2{:}))

Jan
Jan on 10 May 2014
Edited: Jan on 18 May 2014
A simple version:
A = {'jdldi'; 'jdks5.4555h'; 'f67'}
S = cat(2, A{:});
S(isletter(S)) = [];
The simpler the code, the less chances to insert a bug.
  1 Comment
Sebastian Lopez
Sebastian Lopez on 19 Apr 2023
Thanks Jan! I wasn't aware of the isletter function

Sign in to comment.

Categories

Find more on Numeric Types 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!