我认为您需要尝试以下两种方法之一:将您的高度列分解为自己的矩形矩阵 Z 并使用 surf(Z) 绘制每个点相对于其在矩阵中的位置(因此您的 x- 和 y-轴不会按您想要的方式缩放),或者您可以将所需的 x 和 y 坐标放在它们自己的向量中,并绘制矩阵 Z(在 N 和 j 中的所有 i 的每个点 (xi, yj) 处定义在 M 中,其中 x 是 N 个元素长,y 是 M 个元素长),surf(x,y,Z)。
x = 0.1:0.1:10; % or whatever increment you need
y = 0.7:0.01:1; % or whatever increment you need
Z = zeros(length(x),length(y); % initialized to the correct size, fill with data
我认为您将不得不重新生成您的 Z 数据,以便它位于一个矩形矩阵中,该矩阵的维度是(x 中的元素)乘以(y 中的元素)。
编辑:您不需要重新创建数据。如果您知道 x 中有 n 个唯一元素,y 中有 m 个唯一元素,那么您可以使用:
X = reshape(data(:,1),m,n);
Y = reshape(data(:,2),m,n);
Z = reshape(data(:,3),m,n);
surf(X,Y,Z);
这应该会给你你正在寻找的东西。