4D散点数据的Matlab插值
Matlab interpolation of 4D scattered data
我们有一个 195x4(双)矩阵:A=[X Y Z temp]
,当用 scatter3(A(:,1), A(:,2), A(:,3),30, A(:,4), 'filled' )
绘制时,会给出如下内容:
现在我们要生成一个 'cube' 颜色的 temp=A(:,4)
矢量数据插值。
到目前为止我们已经尝试了interp3
% Base Grid
[Xm Ym Zm] = meshgrid(A(:,1), A(:,2), A(:,3));
% Grid Refinement
[Xq,Yq,Zq] = meshgrid(xmin:dx:xmax, ymin:dy:ymax, zmin:dz:zmax);
Aq = interp3(Xm,Ym,Zm,A(:,4),Xq,Yq,Zq);
Returns 出现以下错误:
Error using griddedInterpolant
The number of input coordinate arrays does not equal the number of dimensions
(NDIMS) of these arrays.
Error in interp3 (line 144)
F = griddedInterpolant(X, Y, Z, V, method,extrap);
Error in PDGEM_MT (line 112)
Aq = interp3(Xm,Ym,Zm,A(:,4),Xq,Yq,Zq);
所以我觉得,可能是执行不好and/or对问题的错误解释。
如何生成 'cube' of that space colored with the volume interpolation of A(:,4)
?
提前致谢。
你有一个分散的数据集。
interp3
仅当您的数据点采用网格格式 read this 时才有效。这个函数的简短描述是Interpolation for 3-D gridded data in meshgrid format
相反,您可以使用 griddata
,它适用于分散数据 read this。简短描述是 Interpolate 2-D or 3-D scattered data
.
示例:
X = rand(100,1);
Y = rand(100,1);
Z = rand(100,1);
C = rand(100,1);
figure
scatter3(X, Y, Z,30, C, 'filled' )
[Xm, Ym, Zm] = meshgrid(min(X):.01:max(X), min(Y):.01:max(Y), min(Z):.01:max(Z));
Cm = griddata(X,Y,Z,C,Xm,Ym,Zm);
figure
scatter3(Xm(:), Ym(:), Zm(:), 30, Cm(:), 'filled' )
数据点:
内插:
我们有一个 195x4(双)矩阵:A=[X Y Z temp]
,当用 scatter3(A(:,1), A(:,2), A(:,3),30, A(:,4), 'filled' )
绘制时,会给出如下内容:
现在我们要生成一个 'cube' 颜色的 temp=A(:,4)
矢量数据插值。
到目前为止我们已经尝试了interp3
% Base Grid
[Xm Ym Zm] = meshgrid(A(:,1), A(:,2), A(:,3));
% Grid Refinement
[Xq,Yq,Zq] = meshgrid(xmin:dx:xmax, ymin:dy:ymax, zmin:dz:zmax);
Aq = interp3(Xm,Ym,Zm,A(:,4),Xq,Yq,Zq);
Returns 出现以下错误:
Error using griddedInterpolant
The number of input coordinate arrays does not equal the number of dimensions
(NDIMS) of these arrays.
Error in interp3 (line 144)
F = griddedInterpolant(X, Y, Z, V, method,extrap);
Error in PDGEM_MT (line 112)
Aq = interp3(Xm,Ym,Zm,A(:,4),Xq,Yq,Zq);
所以我觉得,可能是执行不好and/or对问题的错误解释。
如何生成 'cube' of that space colored with the volume interpolation of A(:,4)
?
提前致谢。
你有一个分散的数据集。
interp3
仅当您的数据点采用网格格式 read this 时才有效。这个函数的简短描述是Interpolation for 3-D gridded data in meshgrid format
相反,您可以使用 griddata
,它适用于分散数据 read this。简短描述是 Interpolate 2-D or 3-D scattered data
.
示例:
X = rand(100,1);
Y = rand(100,1);
Z = rand(100,1);
C = rand(100,1);
figure
scatter3(X, Y, Z,30, C, 'filled' )
[Xm, Ym, Zm] = meshgrid(min(X):.01:max(X), min(Y):.01:max(Y), min(Z):.01:max(Z));
Cm = griddata(X,Y,Z,C,Xm,Ym,Zm);
figure
scatter3(Xm(:), Ym(:), Zm(:), 30, Cm(:), 'filled' )
数据点:
内插: