MATLAB Answers

Iman Baz

How to read specific data from a text file

Iman Baz
さんによって質問されました 2019 年 5 月 23 日
最新アクティビティ Adam Danz
さんによって コメントされました 2019 年 5 月 23 日
I want to read the latitude and longitude values (Station and Epicenter) from the following text file.
Station 37.94 N 47.54 E Altitude 1699m Azimuth L 0 T 90 Vs30 406
Epicenter 37.99 N 48.15 E FD 28 Km Mb0 Ms0 Mw6 Mn0 ML6.2
I used the following code for reading geographic coordinate of station
fid=fopen(FileName,'r') ;
text1 = textscan(fid,'%s','Delimiter','','endofline','');
text1 = text1{1}{1};
SLa=regexp(text1,'Station[\s]+(\d*\.?\d+)','tokens') ;
SLo=regexp(text1,'Station[\s] N +(\d*\.?\d+)','tokens') ;
and I got the following results
SLa =
SLo =
I think I missed something in line 6, could you please help me to fix it?

  0 件のコメント

サインイン to comment.

2 件の回答

Adam Danz
回答者: Adam Danz
2019 年 5 月 23 日
編集済み: Adam Danz
2019 年 5 月 23 日

You should be able to pull both numbers out at the same time with this:
LaLoTokens = regexp(text1,'Station +(\d*\.?\d+) +N +(\d*\.?\d+)', 'tokens');
LaLo = str2double([LaLoTokens{:}{:}]);
% or (depending on how 'text1' is stored)
LaLo = str2double([LaLoTokens{:}]);
Here's a great site to put together regular expressions:

  2 件のコメント

Iman Baz
2019 年 5 月 23 日
Dear Adam,
Thank you for your prompt reply. that's worked.
Adam Danz
2019 年 5 月 23 日
Glad I could help! I always go directly to that regex101 website any time I need to work out an expression.

サインイン to comment.

madhan ravi
回答者: madhan ravi
2019 年 5 月 23 日

sscanf(S,'Station %f N %f')

  0 件のコメント

サインイン to comment.

Translated by