extract numbers from cell array

104 visualizaciones (últimos 30 días)
alex
alex el 10 de Mayo de 2014
Comentada: Sebastian Lopez el 19 de Abr. de 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 comentarios
Azzi Abdelmalek
Azzi Abdelmalek el 10 de Mayo de 2014
What about 67?
alex
alex el 10 de Mayo de 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

Iniciar sesión para comentar.

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (2)

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

Jan
Jan el 10 de Mayo de 2014
Editada: Jan el 18 de Mayo de 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 comentario
Sebastian Lopez
Sebastian Lopez el 19 de Abr. de 2023
Thanks Jan! I wasn't aware of the isletter function

Iniciar sesión para comentar.

Categorías

Más información sobre Numeric Types en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by