在文本文件

时间:2015-09-14 08:34:07

标签: matlab multidimensional-array vector text-files

我的ASCII文件有一个纬度向量,这些纬度值的索引将纬度值与共享相同索引的数据联系起来。

即如果给出:

latitude[x=0,1,2,3] = 10, 20, 30, 40
longitude[y=0,1,2] = 15, 25, 35
pressure[z=0,1] = 1000, 950

然后GPHeight_A[z][x] = var_0, var_1, var_2为3个经度提供该变量,其压力和纬度分别由z和x标识。

所以GPHeight_A[0,0] = a, b, c意味着这个简单的例子

经度为15,压力为1000,纬度为10

经度为25,压力为1000,纬度为10

经度为35,压力为1000,纬度为10

GPHeight_A[1,3] = d, e, f意味着这个简单的例子

经度为15,压力为950,纬度为40

经度为25,压力为950,纬度为40

经度为35,压力为950,纬度为40

对应于每个纬度,有20个这样的列(表示经度值)。我想将此文本文件管理到此类文本文件。其中包括三列。第一列是纬度,第二列是与第三列相对应的经度值,是文本文件中这些lat和log的值。

附上文字文件!

我拥有此数据的纬度和经度范围是(22-39N,60-79E)。

请指导我如何根据我的要求安排这些数据。

提前感谢您的努力。

这是文件

GPHeight_A[0][0], -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][1], -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][2], -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][3], -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][4], -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][5], -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][6], -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][7], -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][8], -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][9], -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][10], -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][11], -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][12], -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, 28, 28, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][13], 27, 34, 38, 37, 33, 35, 33, 35, 25, 24, 32, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][14], 29, 33, 35, 33, 34, 36, 36, 36, 30, 29, 35, 36, -9999, -9999, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][15], 30, 33, 32, 34, 33, 33, 34, 36, 39, 38, 39, 41, 45, -9999, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][16], 32, 32, 35, 36, 34, 36, 35, 36, 38, 45, 47, 45, 46, 52, -9999, -9999, -9999, -9999, -9999, -9999
GPHeight_A[0][17], 34, 36, 37, 37, 38, 39, 40, 42, 41, 45, 57, 50, 50, 54, -9999, -9999, -9999, -9999, -9999, -9999

1 个答案:

答案 0 :(得分:0)

 % - Read source file.
 fSpec = ['GPHeight_A[%f][%f]', repmat( ', %f', 1, 20 )] ;
 data  = textscan( fileread( 'Forward file.txt' ), fSpec ) ;

 % - Get pressure from lookup table of pressures and first z+1 (indexing in
 %  MATLAB starts at 1). Update the code if z can vary within an input file.
 pressures = 1000 : -100 : 100 ;                % To adjust to your setting.
 pressure = pressures(data{1}(1)+1) ;

 % - Extract/aggregate data.
 latId = data{2} + 1 ;                          % x + 1
 GP    = horzcat( data{3:end} ) ;