我有一个类似于以下的数据集:
bthd = sort(floor(1+(10-1).*rand(10,1)));
bthd2 = sort(floor(1+(10-1).*rand(10,1)));
bthd3 = sort(floor(1+(10-1).*rand(10,1)));
Depth = [bthd;bthd2;bthd3];
Jday = [repmat(733774,10,1);repmat(733775,10,1);repmat(733776,10,1)];
temp = 10+(30-10).*rand(30,1);
Data = [Jday,Depth,temp];
我有一个类似于“数据”的矩阵,第一列是朱利安日期,第二列是深度,第三列是温度。我想找出每个唯一 Jday 的第一个和最后一个值是什么。这可以通过以下方式获得:
Data = [Jday,Depth,temp];
[~,~,b] = unique(Data(:,1),'rows');
for j = 1:length(unique(b));
top_temp(j) = temp(find(b == j,1,'first'));
bottom_temp(j) = temp(find(b == j,1,'last'));
end
但是,我的数据集非常大,使用此循环会导致运行时间很长。谁能建议一个矢量化的解决方案来做到这一点?