1

私はMatlabの使用に比較的慣れておらず、プログラミングについてもあまり知識がありません。私が現在取り組んでいるプロジェクトでは、次の形式を使用してログに記録される大量のデータを処理する必要があります。

$GPRMC,202124.985,V,,,,,,,091112,,,N*44
2038,4674,4667,5593,3379
2087,5133,5111,6084,3372
2138,5134,5114,6080,3376
2188,5133,5114,6084,3377
2238,5130,5113,6084,3410
2287,5134,5113,6080,3416
2337,5133,5110,6080,3417
2387,5133,5110,6084,3416
2438,5130,5113,6081,3396
2487,5132,5110,6080,3410
$GPRMC,202125.985,V,,,,,,,091112,,,N*45
2985,5130,5113,6085,3988
3035,5130,5118,6084,4541
3085,5138,5113,6082,5186
3135,5130,5114,6081,6001
3185,5134,5110,6084,6311
3234,5134,5113,6084,6319
3284,5131,5114,6084,6316
3339,5131,5110,6084,6260
3389,5130,5114,6080,6178
3438,5134,5110,6085,6077
$GPRMC,202126.985,V,,,,,,,091112,,,N*46
3942,5131,5114,6085,5916
3992,5130,5110,6084,5917
4042,5133,5110,6084,5950
4091,5131,5114,6080,5996
4142,5134,5114,6085,6062
4192,5134,5114,6084,6129
4242,5134,5110,6080,6150
4291,5130,5110,6079,6186
4341,5130,5110,6089,6246
4391,5130,5118,6083,6266

ファイルの終わりまでこのように続きます。私がやりたいのは、すべての'$ GPRMC'文字列(行)が1つのファイルまたは配列にテキスト(分離されていない)として一緒にリストされ、他のすべての行(数値)が一緒にリストされるようにデータを分離できるようにすることです1つのファイル配列(カンマ区切りが望ましい)。それも可能ですか?もしそうなら、私にいくつかの指針を教えてください。

4

1 に答える 1

1

分離されている、または分離されていないという意味がよくわかりません。投稿したテキストをのようなファイルにコピーすると、、testf.datを使用したこのような単純なスクリプトが、探しているものになる可能性があります。fopenfprintffgets

infile = fopen('testf.dat');                                                        
outf1 = fopen('GPRMC.dat','w');                                                 
outf2 = fopen('nums.dat','w');                                                  

tline = fgets(infile);                                                          
while ischar(tline)                                                             
    if tline(1:6) == '$GPRMC'                                                   
        fprintf(outf1,tline);                                                   
    else                                                                        
        fprintf(outf2,tline);                                                   
    end                                                                         
    tline = fgets(infile);                                                      
end                                                                             

fclose(infile);                                                                 
fclose(outf1);                                                                  
fclose(outf2);
于 2012-11-10T02:39:51.973 に答える