# How to convert array so that I have only numerical values

2 次查看（过去 30 天）
Pavan Singh2020-11-2

I need to turn this array to a graph, to do so I only need numerical values

### 回答（3 个）

Hi Pavan,
As from the snippet provided, i can see a pattern where from 6 element the numeric value starts and has till last but before element.
Assuming temp as a variable having that data. Here is the way it can be done
numericTemp = cellfun(@(x) str2num(x(6:end-1)),temp);
Hope this helps.
Regards,
Sriram
##### 0 个评论显示隐藏 -1更早的评论

Ameer Hamza 2020-11-2
This is an alternative approach
str = {'lat: -30.963#';'lat: -30.963#';'lat: -30.963#';'lat: -30.963#'}
nums = cellfun(@(x) sscanf(x, 'lat:%f#'), str)
##### 0 个评论显示隐藏 -1更早的评论

Stephen 2020-11-2

Do NOT use cellfun for this, unless really you want your code to be slow.
The most efficient solution by far is this:
str = {'lat: -30.963#';'lat: -30.964#';'lat: -30.965#';'lat: -30.966#'};
vec = sscanf([str{:}],'lat:%f#')
vec = 4×1
-30.9630 -30.9640 -30.9650 -30.9660

R2020a

### Community Treasure Hunt

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

Start Hunting!

Translated by