cell array with numeric values only

Conver this array to an array with numbers only so it can be used for a graph

 采纳的回答

VBBV
VBBV 2020-11-2
编辑:VBBV 2020-11-2
%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

更多回答(2 个)

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
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

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

产品

版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by