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”字符串(行)在一个文件或数组中作为文本(未分隔)一起列出,而所有其他行(数字)一起列出在一个文件数组中(逗号分隔是可取的)。甚至可能吗?如果是的话,你能给我一些指点吗?

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 回答