简单的Matlab插值。要避免interp2或interp3吗
我有一个三维矩阵,它的维数是ZXY,我把它简化为二维(大小是Z*(X*Y)。我想把这个矩阵插值为一个特定的Y值,比如Y,基本上把矩阵简化为Z,X 如何在Matlab中有效地实现这一点 我希望避免将矩阵重塑为尺寸ZXY,然后再执行interp3简单的Matlab插值。要避免interp2或interp3吗,matlab,Matlab,我有一个三维矩阵,它的维数是ZXY,我把它简化为二维(大小是Z*(X*Y)。我想把这个矩阵插值为一个特定的Y值,比如Y,基本上把矩阵简化为Z,X 如何在Matlab中有效地实现这一点 我希望避免将矩阵重塑为尺寸ZXY,然后再执行interp3 interp3(X,Z,Y,reshape(MATRIX,[Z X Y]),X,Z,y) 因为这似乎是在二维之间使用插值,我不需要插值。我可以做插值(线性)在y点手动,但我相信在Matlab中有一个很好的方法可以做到这一点。非常感谢您的帮助。所以您只想基
interp3(X,Z,Y,reshape(MATRIX,[Z X Y]),X,Z,y)
因为这似乎是在二维之间使用插值,我不需要插值。我可以做插值(线性)在y点手动,但我相信在Matlab中有一个很好的方法可以做到这一点。非常感谢您的帮助。所以您只想基于y分量进行插值?基本上,您必须找到
y0
,其中y0对不起,c
1-c
。是的,这会起作用,但随后我必须重塑为三维矩阵首先是x,我想避免,因为这是一个我必须重复多次的操作。现在我正在找到y0,然后我在正确的点手动插值二维矩阵。正如你所说,这有点逻辑。我只是认为可能有一个更简单的方法。感觉这在某种程度上是一个interp1。当然,它是interp1
,只是对于一堆同时出现的X,Z
索引,手动操作应该是最快的。你要么要重塑,要么要解决后勤问题,但是没有其他选择,cherry可以从Z*(X*y)
线性索引中为你绘制y
索引:)这应该不会对矩阵(:,y0,:)造成太大的伤害
类似于MATRIX_lin(:,1:X+(y0-1)*X)
或者相反,这取决于构建X*Y
大小的维度的方式。请注意,使用我所说的vsinterp3
不仅仅是一个方便和高效的问题:在上述情况下,您插值数据立方体的整个平面,然后使用它,而使用interp3
时,考虑到近邻(例如使用三线性插值),您可以单独插值新数据点。如果他们给出同样的结果,我会感到惊讶。