Convert cell array of latitudes to array
Afficher commentaires plus anciens
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 commentaires
Walter Roberson
le 7 Mar 2016
Is 50.01.234 to be a single specification? For example does it mean 50 degrees, 01 minutes, and 234 seconds, which would be the same thing as 50 degrees, 4 minutes and 54 seconds?
aaron Harvey
le 7 Mar 2016
Réponses (3)
KSSV
le 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 commentaire
aaron Harvey
le 7 Mar 2016
Jan
le 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
le 7 Mar 2016
paired_numeric = str2double( regexp(TheCellArray(:), '\.', 'split', 'once') );
degrees = paired_numeric(:,1) + paired_numeric(:,2) / 60;
Catégories
En savoir plus sur Data Type Conversion dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!