0

可能重复:
如何在 MATLAB 中使用不规则间隔的数据制作冲浪图?

我有这样的数据:

data = [
x1 y1 z1
x2 y2 z2
...
xn yn zn
];

我需要了解这些数据。第三行,z - 将是表面的高度。但是 Xs 和 Ys 不是单调连续数据,所以这不起作用:

[X Y] = meshgrid(data(:,1), data(:,2));
Z = interp2(data(:,1), data(:,2), data(:,3), X, Y);

因为我在第一行和第二行的数据不是单调的。

更新:

TriScatteredInterp可以做到这一点。(感谢@Rody Oldenhuis)

F = TriScatteredInterp(data(:,1), data(:,2), data(:,3))
ti=1:10:600;
[qx qy] = meshgrid(ti, ti);
qz = F(qx, qy);
mesh(qx, qy, qz);
4

1 回答 1

1

我认为您正在寻找TriScatteredInterp。从文档中:

F = TriScatteredInterp(X, V) 创建一个插值,将 V = F(X) 形式的曲面拟合到 (X, V) 中的分散数据。X 是大小为 mpts-by-ndim 的矩阵,其中 mpts 是点数,ndim 是点所在空间的维度(ndim 为 2 或 3)。列向量 V 定义 X 处的值,其中 V 的长度等于 mpts。

F = TriScatteredInterp(X, Y, V) 和 F = TriScatteredInterp(X, Y, Z, V) 允许在 2-D 和 3-D 工作时以替代列向量格式指定数据点位置。

于 2012-10-30T12:40:58.937 回答