tl; dr:将scalars中的xsim和(ssim)更改为与ksim和zsim相同大小的向量
Output = interpn (ks, xs, zs, ss, ...
kprime, ...
ksim, ...
repmat(xsim, size(ksim)), ... %
zsim, ...
repmat(1, size(ksim)), ... %
'linear');
说明:
ksim,xsim,zsim和ssim输入都需要具有相同的形状,以便在该形状中的每个公共位置处,每个输入充当插值对象的“插值下标”分量.请注意,虽然它们都需要具有相同的形状,但这种形状在尺寸和尺寸方面可以是任意的.
相反,如果传递不同大小的向量(毕竟,标量是长度为1的向量),则这些将被解释为ndgrid构造的组件.所以你实际上是在告诉interpn评估由向量ksim和zsim(以及你的单例xsim和ssim)定义的网格上的所有插值.这就是为什么你有一个2D网格外观的输出.
注意,相同的方案也适用于构造向量(即ks,xs,zs和ss),即你可以使用“向量语法”而不是“通用形状”语法来定义网格,即
Output = interpn(kgrid, x, z, s, kprime, % ...etc etc
你会得到相同的结果.