Convert cell array of latitudes to array

2 views (last 30 days)
aaron Harvey
aaron Harvey on 7 Mar 2016
Answered: Walter Roberson on 7 Mar 2016
I have a array of cells containing latitudes in the format {'50.01.234';'etc} how can i convert this into something meaningfull in which i will be able to produce a grid from later?
  2 Comments
aaron Harvey
aaron Harvey on 7 Mar 2016
sorry i should have specified this. Its actually deg and decimal , so 50.01.234 would be 50degrees and 01.234 minutes. i would like to be able to take them from the array of cells eventually to be able to plot the points on a grid map

Sign in to comment.

Answers (3)

KSSV
KSSV on 7 Mar 2016
k = {'1' ; '3' ; '4' ; '7' ; '10'} ; % be your cell array
N = length(k) ; % gives number of elements in cell array
lon = zeros(N,1) ; % Initialize the lon array
for i = 1:length(k) % Loop for every element
lon(i) = str2num(k{i}) ; % combert sring/ char to number
end
  1 Comment
aaron Harvey
aaron Harvey on 7 Mar 2016
I'm affraid this hasn't worked, it handles numbers such as your example fine but it does not handle the second decimal point well such as 50.01.234

Sign in to comment.


Jan
Jan on 7 Mar 2016
Are you sure that you get 50 deg, 1.234 min and not 50 deg 1 min 234 sec (while the last value is a typo only)?
Data = {'50.01.234'; '60.06.345'};
Str = sprintf('%s#'m Data{:});
Value = sscanf(Str, '%i.%f#', [2, numel(Data)]);
Deg = Value(1, :) + Value(2, :) / 60;

Walter Roberson
Walter Roberson on 7 Mar 2016
paired_numeric = str2double( regexp(TheCellArray(:), '\.', 'split', 'once') );
degrees = paired_numeric(:,1) + paired_numeric(:,2) / 60;

Categories

Find more on Characters and Strings 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!