フィルターのクリア

Partitioning data out of .txt files

3 ビュー (過去 30 日間)
Jon
Jon 2022 年 10 月 9 日
コメント済み: Jon 2022 年 10 月 17 日
I have a lot of old data scanned from hand writen notes. It was scanned in to a .txt file, the result being one long string of words and numbers. See data sample attached "archers_fieldnotes_scan".
The data consist of a location (or the shorthand note of it), a number, its result, then the next location, number, its result....repeat.
I need to break this information down into a usable matrix, consisting of 1 column vector fot the location, 1 column vector for the numeric value, and a thrid column vector of the result.
All I have been able to do with it so far is read the .txt file in as one long string.
txt=readlines("archer_fieldnotes_scan.txt");
This is the first time I am attempting to partition something this string dependant. Any suggestions?

採用された回答

Chunru
Chunru 2022 年 10 月 10 日
編集済み: Chunru 2022 年 10 月 15 日
websave("scan.txt", "https://www.mathworks.com/matlabcentral/answers/uploaded_files/1150740/archer_fieldnotes_scan.txt")
ans = '/users/mss.system.KDDHFr/scan.txt'
%type scan.txt
s = readlines("scan.txt")
s = "northeast section ar20.63 - pos northeast sec ar20.69 - neg NE sec 20.71 - neg NE sect as 20.72 - ? southeast sec am20.70-neg SE sec am20.71 - pos"
x = regexp(s, '(\D+)(\d+\.\d+) - (pos|neg)* ', 'tokens')
x = 1×3 cell array
{["northeast section ar" "20.63" "pos"]} {["northeast sec ar" "20.69" "neg"]} {["NE sec " "20.71" "neg"]}
  3 件のコメント
Chunru
Chunru 2022 年 10 月 15 日
See above. You can read through regext, which is very powerful.
Jon
Jon 2022 年 10 月 17 日
Ok, cool you used the pos of neg, which is more or less common this will work and I can change the off events where it doesnt mannually. Great, thank you much.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeString Parsing についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by