Interpolate a 3D-Matrix using interp1
20 ビュー (過去 30 日間)
I try to interpolate a 3D Matrix using interp1. I think it should be easy but i just don't get it.
I have a 3d-matrix and a vector in z direction. I wan't to get an interpolated 2d Matrix for any value in the z direction. For Example:
matrix(1:3,1:3,1) = 1
matrix(1:3,1:3,2) = 2
z(1,1,1:2) = [10,20]
so I thought interp1 would return a 3x3 Matrix with the values 1.5 but i just get an error.
Thanks a lot!
Matt J 2012 年 12 月 8 日
編集済み: Matt J 2012 年 12 月 8 日
VI = interp1(z,V,15);
ans = reshape(VI,3,3),
You could also use griddedInterpolant instead
It's hard to say which would be more efficient, in general. griddedInterpolant is a newer and better optimized function, but interp1 takes advantage of the 1D nature of the interpolation.
その他の回答 (1 件)
Glynn 2014 年 1 月 15 日
Using the same example above, what if the xi in interp1(x,Y,xi), is a 2-d matrix the same size as the first two dimensions of 'matrix'? I keep getting OOM issues when trying to solve: x is a (1,3)array Y is a (2030,873,3) matrix xi is a (2030,873) matrix