我目前有 3 个矩阵:X(N x 1)、Y(N xk) 和Xi(N x (j + k))。
为了简单描述我的问题,我假设j=0
基本上我想要的是一个 N xk 矩阵A,其中:
A(:,t) = interp1(X,Y(:,t),Xi(:,t))
换言之, 的第 n 列对应于基于和A的第 n 列的插值。XiXY(:,n)
我目前正在使用循环来创建矩阵A。另一种选择是使用以下命令:
interp1(X,Y,Xi)
此命令的问题在于 MATLAB 将创建一个N x k x k矩阵,因为它会Xi在Y. 因此,避免循环所带来的任何速度优势都会被执行的额外插值所抵消,尤其k是在很大的情况下。
我还缺少第三种选择吗?
编辑:我一直在尝试使用bsxfun,但我似乎无法让它正常工作。我也不知道如何适应这个问题j > 0(见下文)。
PS:如果j > 0,那么现在需要的矩阵是
A(:, 1+tj:(t+1)j) = interp1(X, Y(:,t), Xi(:,tj:(t+1)j))