我在水柱的不同深度进行了一系列测量。我已将它们分成单个单元格(以后再说),并需要一些帮助来完成以下内容:例如
time = [733774,733774,733775,733775,733775,733776,733776];
bthD = [20,10,0,15,10,20,10];
bthA = (1000:100:1600);
%Hypsographic
Hypso = [(10:1:20)',(1000:100:2000)'];
d = [1,1.3,1,2.5,2.5,1,1.2];
data = horzcat(time',bthD',d');
uniqueTimes = unique(time);
counts = hist(time,uniqueTimes);
newData = mat2cell(data,counts,length(uniqueTimes));
所以,在newData中我有三个单元,对应于不同的测量天数,在每个单元格中我有newData(:,1)是时间,newData(:,2)是深度,newData(:,3)作为衡量标准。我想找出细胞中每个深度的区域,不同深度的区域在变量'Hypso'中给出。
我怎么能实现这个目标?
答案 0 :(得分:0)
你的问题表达非常好!很容易理解你需要的东西。您所需要的只是函数interp1。我假设使用Hypso
的第一列作为深度,第二列作为区域。您可以使用interp1
函数的向量化能力在一次调用中查找所有值:
areaAtDepth = interp1(Hypso(:,1),Hypso(:,2),bthD)
areaAtDepth =
Columns 1 through 6
2000 1000 NaN 1500 1000 2000
Column 7
1000
您会注意到输出第三列中的Nan
。这是因为它的相关深度0
超出了数据的范围,或者支持我认为的数据。当数据超出范围时,您需要确定要执行的操作,或者可能永远不应该这样做,因此应记录错误;由你决定!如果您还有其他问题,请与我们联系!