Трехмерная (3D) матричная интерполяция в Matlab
У меня есть 3D-матрица в Matlab определенного размера, однако мне нужно будет интерполировать ее, чтобы получить матрицу большего размера.
size(M)
ans=
50 108 86
Мне нужно, чтобы эта матрица была интерполирована и, наконец, получить матрицу размера100x213x140
, Любые идеи о том, как это сделать, используяinterp3
? Это вообще возможно?
я пробовал
Vq = interp3(M,1:100,1:213,1:140)
Error using griddedInterpolant/subsref
The input data has inconsistent size.
Error in interp3 (line 178)
Vq = F(Xq,Yq,Zq);
Если я используюmeshgrid
:
[X,Y,Z] = meshgrid(1:100, 1:213, 1:140);
Vq =interp3(M,X,Y,Z);
Matlab, похоже, нравится, но происходят две вещи:
size(Vq) ans= 213 100 140
я могу видетьNaN
значения вVq
Причина в том, что мне нужно сравнить две матрицы, выбранные с разной частотой. Итак, я мог бы либо интерполироватьM
получить матрицу размера100x213x140
или "уменьшить" размер моей другой матрицыM2
размера100x213x140
в50x108x86
, Я думал, что первое должно быть проще и безопаснее ...