基于经度和经度的matlab分离数据

时间:2013-12-06 05:11:13

标签: matlab latitude-longitude

我有一组数据需要根据收集数据的位置组织成各个部分。数据有5个部分,因此我需要根据纬度和经度将数据分成这五个部分。我该怎么做呢?

这是一个示例。前几列包含有关航行的信息,第五列包含收集数据的纬度,第六列包含经度。下一列包含有关收集时间和数据收集结果的信息。

  

2,NaN,83,NaN,-62.18,-36.59,1983,318,0,0.1,NaN,0.28,6,   1.06,0.66,0.41,0.29,0.26,0.30,0.39,0.49,0.60,0.67,0.68,0.64,0.56,0.45,0.36,0.28,0.22,0.18,0.15,0.13,0.11,0.10,0.09,0.07

1 个答案:

答案 0 :(得分:0)

您可以使用csvread,因为数据仅限数字。并通过标准列索引访问lat / lon。

M = csvread(filename);
lat = M(:,5);
lon = M(:,6);

然后选择与您的标准对应的索引并提取数据

% a N x 4 matrix, N lines for the number of groups, and 4 columns for min(lat) max(lat) min(lon) max(lon) 
lat_lon_values = [10 20 50 80;
    20 30 50 80;
    50 70 10 60];

for ind_group = 1:size(lat_lon_values, 1)

    a = lat_lon_values(ind_group, 1); %min(lat)
    b = lat_lon_values(ind_group, 2); %max(lat)
    c = lat_lon_values(ind_group, 3); %min(lon)
    d = lat_lon_values(ind_group, 4); %max(lon)

    %select the indexes based on lat and lon values
    ind_line = M(5,:)>= a & M(5,:)<= b & M(6,:)>= c & M(6,:)<= d;

    %your selected data
    M(ind_line, :)

end