我有一个MATLAB 3D矩阵,我想在第三维插值。我使用MATLAB interp3来做到这一点:
final_3D_mat=interp3( hor_inds_mm, vert_inds_mm, prev_depth_axis_mm,...
prev_3D_mat, ...
hor_inds_mm, vert_inds_mm, new_depth_axis_mm )
使用的数组大小:
size(prev_3D_mat)
size(hor_inds_mm)
size(vert_inds_mm)
size(prev_depth_axis_mm)
size(new_depth_axis_mm)
ans =
337 507 17
ans =
1 507
ans =
1 337
ans =
1 17
ans =
1 337
我不想在调用interp3之前调用meshgrid,并使用interp3的X,Y,Z参数作为向量。但是我一直收到错误:
??? Error using ==> interp3 at 128
XI,YI, and ZI must be the same size or vectors of different
orientations.
我试图交换hor_inds_mm和vert_inds_mm参数的位置,但得到了错误:
??? Error using ==> interp3 at 128
The lengths of X,Y and Z must match the size of V.
我也试图像这样改变矢量的方向:
final_3D_mat=interp3( hor_inds_mm, vert_inds_mm', permute(prev_depth_axis_mm,[1 3 2]),...
prev_3D_mat, ...
hor_inds_mm, vert_inds_mm',permute(new_depth_axis_mm,[1 3 2]));
但我得到了同样的错误:
??? Error using ==> interp3 at 128
XI,YI, and ZI must be the same size or vectors of different
orientations.
有人可以帮忙吗?
答案 0 :(得分:0)
你接近成功,只需要让前两个指数的方向不同:
final_3D_mat=interp3( hor_inds_mm', vert_inds_mm, prev_depth_axis_mm,...
prev_3D_mat, ...
hor_inds_mm', vert_inds_mm, new_depth_axis_mm ) ;