我有一组在 S 个时间点进行的 N 次测量(不同测量的时间点不同)。我有两个矩阵:
V - 表示测量值的 NxS 矩阵
T - 表示测量时间的 NxS 矩阵
我想生成一个矩阵 VI,表示时间为 TI 的线性插值测量值。代码的非矢量化版本如下:
tic;
VI = zeros([size(V,1), size(TI,2)]);
for j = 1:size(V,1)
VI(j,:) = interp1(T(j,:),V(j,:),TI);
end
toc;
我想重写此代码以消除 for 循环,以便使用矩阵运算和函数来实现它。可以向量化吗?
没有数据和运行分析器很难说什么,但如果你的数据是排序的,你可以使用 interp1q
而不是 interp
,它不做任何事情检查数据。
摘自 Matlab 帮助:
For interp1q to work properly, x must be a monotonically increasing column vector. Y must be a column vector or matrix with length(x) rows. xi must be a column vector
我是一名优秀的程序员,十分优秀!