我尝试在 MATLAB 中绘制曲面,但由于这是我第一次必须做这样的事情,我需要确认我遵循的过程,因为绘制正确的曲面对我的项目很重要。
我从测量数据中获得了 3 个向量:(位移)、(速度)和(力)。目标是绘制一个曲面,其中和代表平面中的一个点,是该平面上方的“高度”。这个想法是要有一个非常光滑的表面,因为我必须使用数学模型拟合从测量数据创建的这个表面。
这就是我所做的:
首先我创建了网格:(因为我的测量向量有超过 400000 个样本,我是否必须使用超过 1000 个x_plot
才能y_plot
得到一个好的图?当我增加过多的长度时我也有一个问题x_plot
and y_plot
,事实上我收到"out of memory"
错误消息)
x_plot = linspace(min(x),max(x),1000);
y_plot = linspace(min(v),max(v),1000);
[XI,YI] = ndgrid(x_plot,y_plot);
然后我创建分散数据插值:
F = TriScatteredInterp(x,v,p,'natural');
现在我评估网格上的插值:
ZI = F(XI,YI);
最后我绘制表面:
figure()
mesh(XI,YI,ZI)
这是正确的方法吗?
使用 ndgrid 或 meshgrid 创建网格更好吗?