Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB中时间序列数据的插值_Matlab_Interpolation - Fatal编程技术网

MATLAB中时间序列数据的插值

MATLAB中时间序列数据的插值,matlab,interpolation,Matlab,Interpolation,我在MATLAB中有一个多维时间序列。假设它是M维的,N个样本,因此我将它存储在NxM矩阵中 我想插值时间序列,以适应新的长度(N1),其中N总是小于N1 换句话说,如果我有多个时间序列(都是以相同的速率采样的,只是长度不同),我想把它们都插值为长度N0 如何用MATLAB实现这一点 编辑:可以用imresize实现吗 i、 e: 下面这样的过程可能会执行您想要的操作。新数据将是旧数据的线性插值 [initSize1, initSize2] = ndgrid(1:size(Data, 1), 1

我在MATLAB中有一个多维时间序列。假设它是M维的,N个样本,因此我将它存储在NxM矩阵中

我想插值时间序列,以适应新的长度(N1),其中N总是小于N1

换句话说,如果我有多个时间序列(都是以相同的速率采样的,只是长度不同),我想把它们都插值为长度N0

如何用MATLAB实现这一点

编辑:可以用imresize实现吗

i、 e:


下面这样的过程可能会执行您想要的操作。新数据将是旧数据的线性插值

[initSize1, initSize2] = ndgrid(1:size(Data, 1), 1:size(Data, 2));
[newSize1, newSize2] = ndgrid(linspace(1, size(Data, 1), newlength), 1:size(Data, 2));
newData = interpn(initSize1, initSize2, Data, newSize1, newSize2);

向上编码时,只有维度1应该更改,因为在对
ndgrid

的第一次和第二次调用中,第二个网格化维度是相同的。如果您有
timeseries
对象,您可能还需要查看
timeseries
对象的
重采样方法:


如果我理解正确,
griddatan
和/或
interpn
可能会起作用。我想这会满足我的需要。:-)非常感谢。
[initSize1, initSize2] = ndgrid(1:size(Data, 1), 1:size(Data, 2));
[newSize1, newSize2] = ndgrid(linspace(1, size(Data, 1), newlength), 1:size(Data, 2));
newData = interpn(initSize1, initSize2, Data, newSize1, newSize2);