I have a logger which records lat and long GPS data in Degrees Minutes Decimal format and I need to convert it into Degrees Decimal. For example the format from the logger is:
3947.787, -10454.28
I need to split this into:
39 47.787 -104 54.28
I can then convert these values into Degrees Decimal. The part I'm struggling with in my head is having the degrees value either 2 or 3 characters. If they where all the same size I think it's be far easier.
Thanks in advance everyone.

1 件のコメント

James Tursa
James Tursa 2018 年 3 月 15 日
Do you have those lat/long values in your MATLAB workspace as char data or as double data?

サインインしてコメントする。

 採用された回答

Stephen23
Stephen23 2018 年 3 月 15 日
編集済み: Stephen23 2018 年 3 月 15 日

0 投票

If the minutes always has exactly two digits then this can be easily solved using a regular expression:
>> str = '3947.787, -10454.28';
>> tkn = regexp(str,'(\d+)(\d{2}\.\d+)','tokens');
>> str2double(vertcat(tkn{:}))
ans =
39 47.787
104 54.28
Note that this regular expression will not work if minutes can have other than two digits.

1 件のコメント

Richard Youden
Richard Youden 2018 年 3 月 15 日
Thanks, that works perfectly.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeGuidance, Navigation, and Control (GNC) についてさらに検索

質問済み:

2018 年 3 月 15 日

編集済み:

2018 年 3 月 15 日

Community Treasure Hunt

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

Start Hunting!

Translated by