在matlab中加入时间序列并用NaN替换缺失的数据点

时间:2016-04-13 19:53:46

标签: matlab nan

我正在尝试在matlab中加入2个不同的时间序列并创建一个公共时间向量,并希望得到一些帮助。我不想插入任何值,而是用NaN替换丢失的数据点,并在稍后用repnan函数填充它们,所以我不能在matlab中使用interp1或同步函数,因为我总是插入。 假设我有矩阵

 a =
 1    40
 2    50
 3    60
 5    70
 6    80

 b =
 2    60
 3    70
 4    80
 5    90
 7   100

然后我用

 time = union(a(:,1), b(:,1))

获取我想要的公共时间向量

 time =
 1
 2
 3
 4
 5
 6
 7

现在我想要一个新的矩阵,我可以在a和b的值中找到值,当给定时间没有值时,可以得到NaN。例如,如果我使用

 fill_a = ismember(time, a(:,1))
 fill_a =
 1
 1
 1
 0
 1
 1
 0

我希望a中的观察值与其中的值相同,并且NaN的位置为零,并将其放入具有公共时间戳的新矩阵中。 我希望它看起来像

 finished =
 1    40   NaN
 2    50    60
 3    60    70
 4   NaN    80
 5    70    90
 6    80   NaN
 7   NaN   100

感谢任何帮助。如果可能的话,我宁愿不要循环。提前谢谢。

0 个答案:

没有答案