Hello, I want to build a function that extracts METAR data from one specific airport.
The char that I get looks like this:
202005250620 METAR ETSL 250620Z 24008KT 9999 FEW040 BKN060 11/07 Q1031
BLU BLU TEMPO WHT=
202005250620 METAR ETSN 250620Z 29008KT 9999 VCSH FEW020 SCT040 BKN065
12/10 Q1031 BLU BLU TEMPO GRN=
202005250620 METAR ETWM 250620Z 35008KT 9999 VCSH SCT012TCU BKN056 14/10
Q1031 BLU=
StartMETAR= strfind(rawdata,"ETSL")-19
ETSL for example is one Airport. I now want to build a string that starts 20 positions earlier than the station (in oder to include the date) and ends whenever there is an equal sign. However as you can see the strings are always of different length. How can I do this?
Thank you very much already in advance

 Réponse acceptée

Rik
Rik le 25 Mai 2020
The code below assumes there is only a single match for 'ETSL'.
StartMETAR=strfind(rawdata,'ETSL')-19;
EndMETAR=strfind(rawdata,'=');
EndMETAR(EndMETAR<=StartMETAR)=[];EndMETAR=EndMETAR(1);%select the first after StartMETAR

1 commentaire

Francis Hin
Francis Hin le 25 Mai 2020
Yes it is working poerfectly thank you very much!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Characters and Strings 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!

Translated by