我有一组数据需要根据收集数据的位置组织成各个部分。数据有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
答案 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