cell array with numeric values only

 Respuesta aceptada

VBBV
VBBV el 2 de Nov. de 2020
Editada: VBBV el 2 de Nov. de 2020
%if true
% code
% end
C = {'long: 151.125#';'long: 151.126#'}
for i=1:length(C)
nn{i}=(C{i}(7:13));
end
A = cell2mat(nn')
B = str2num(A)% array with numbers only

Más respuestas (2)

Stephen23
Stephen23 el 2 de Nov. de 2020
Do NOT use loops or cellfun for this, unless you really want to write complex and slow MATLAB code.
The most efficient solution is to use sscanf like this:
C = {'long: 151.125#';'long: 151.126#'};
V = sscanf([C{:}],'long:%f#')
V = 2×1
151.1250 151.1260
Akira Agata
Akira Agata el 2 de Nov. de 2020
Another possible solution:
C = {'long: 151.125#';'long: 151.126#'};
V = regexp(C,'[?\d.]+','match','once');
V = str2double(V);
>> V
V =
151.1250
151.1260

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Productos

Versión

R2020a

Etiquetas

Preguntada:

el 2 de Nov. de 2020

Comentada:

el 2 de Nov. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by