Convert cell array of latitudes to array
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
Walter Roberson
2016-3-7
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?
回答(3 个)
KSSV
2016-3-7
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
Jan
2016-3-7
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;
0 个评论
Walter Roberson
2016-3-7
paired_numeric = str2double( regexp(TheCellArray(:), '\.', 'split', 'once') );
degrees = paired_numeric(:,1) + paired_numeric(:,2) / 60;
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!