Matlab 插入日期时间以匹配另一个数组的大小

Matlab 插入日期时间以匹配另一个数组的大小,matlab,datetime,size,interpolation,Matlab,Datetime,Size,Interpolation,我有两次:Time\u One,Time\u two 我需要将Time\u One设置为与Time\u Two相同的大小,而不删除任何现有时间。首先,我将它们转换成序列日期号,然后对它们进行插值,但这不起作用。我做错了什么 Time_One={'05-Apr-2017 12:06:00','05-Apr-2017 12:07:00','05-Apr-2017 12:08:00','05-Apr-2017 12:09:00','05-Apr-2017 12:10:00','05-Apr-2017

我有两次:
Time\u One
Time\u two

我需要将
Time\u One
设置为与
Time\u Two
相同的大小,而不删除任何现有时间。首先,我将它们转换成序列日期号,然后对它们进行插值,但这不起作用。我做错了什么

Time_One={'05-Apr-2017 12:06:00','05-Apr-2017 12:07:00','05-Apr-2017 12:08:00','05-Apr-2017 12:09:00','05-Apr-2017 12:10:00','05-Apr-2017 12:11:00','05-Apr-2017 12:12:00'};
Time_Two={'05-Apr-2017 12:06:30','05-Apr-2017 12:07:30','05-Apr-2017 12:08:30','05-Apr-2017 12:09:30','05-Apr-2017 12:10:30','05-Apr-2017 12:11:30','05-Apr-2017 12:12:30','05-Apr-2017 12:13:30','05-Apr-2017 12:14:30'};
A = datenum(Time_One)';
B= datenum(Time_Two)';
C=interp1(A,A,B);
D= datetime(C,'ConvertFrom','datenum');

插值
interp1(A,A,B)
对您没有任何帮助,因为您已将
A
指定为插值的输入和输出

相反,我建议您使用“虚拟”x轴进行插值

C = interp1( linspace(0,1,numel(A)), A, linspace(0,1,numel(B)) );

这将使开始和结束时间保持相同,内部点彼此之间的间距也将保持相同。

这样可以解决大小问题,但我不保留实际时间。例如:从2020年4月20日12:06:45到2020年4月20日12:07:30已跳过2017年4月5日12:07:00。@Aurela能否提供有关如何更改数组大小并保持元素不变的详细信息?应该用什么来弥补差异?添加开始时(或任何部分)缺少的时间差异。结果可以是这样的:时间=2017年4月5日12:06:00’、‘2017年4月5日12:06:30’、‘2017年4月5日12:07:00’、‘2017年4月5日12:07:30’、‘2017年4月5日12:08:00’、‘2017年4月5日12:09:00’、‘2017年4月5日12:10:00’、‘2017年4月5日11:10:00’、‘2017年4月5日12:12:00’;你能假定差值总是恒定的吗?你的问题一点也不清楚…如果我不够清楚,我很抱歉。我只想在我已经必须使其与其他数据大小相同的时间之间添加更多的时间。在前面的示例中看到的差异不可能总是恒定的。