我目前有 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 列的插值。Xi
X
Y(:,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))