在 MATLAB 中,如何组合以不同频率测量的两个数据矩阵,以使结果以更高的频率索引?由于以较低频率测量的数据在结果中会有很多未知值,我想用矩阵中的最后一个已知值替换它们。有很多数据,因此首选矢量化解决方案。我在下面添加了一些示例数据。
鉴于:
index1 data1 index2 data2
1 2.1 2 30.5
2 3.3 6 32.0
3 3.5 9 35.0
4 3.9 13 35.5
5 4.5 17 34.5
6 5.0 20 37.0
7 5.2 ... ...
8 5.7
9 6.8
10 7.9
... ...
结果:
index1 data1 data2
1 2.1 NaN
2 3.3 30.5
3 3.5 30.5
4 3.9 30.5
5 4.5 30.5
6 5.0 32.0
7 5.2 32.0
8 5.7 32.0
9 6.8 35.0
10 7.9 35.0
... ... ...
编辑: 我认为以下帖子接近我需要的内容,但我不确定如何转换解决方案以适应我的问题。 http://www.mathworks.com/matlabcentral/newsreader/view_thread/260139
编辑(几个月后): 我最近遇到了这个出色的小功能,我认为它可能对任何登陆这篇文章的人有用:
function yi = interpLast(x,y,xi)
%INTERPLAST Interpolates the input data to the last known value.
% Note the index data should be input in ASCENDING order.
inds = arrayfun(@findinds, xi);
yi = y(inds);
function ind = findinds(val)
ind = find(x<=val,1,'last');
if isempty(ind)
ind = 1;
end
end
end
信用在这里:http ://www.mathworks.com/support/solutions/en/data/1-48KETY/index.html?product=SL&solution=1-48KETY