首页 > 解决方案 > 如何在 Octave/MATLAB 中使用给定数据点制作二维等高线图?

问题描述

我有一个矩阵,其三列对应于 x、y 和 f 值。我想f(x,y)用 Octave/MATLAB 从这些数据中绘制 x,y 平面的等高线图。

比方说,矩阵M

x1 y1 f1
x2 y2 f2
x3 y3 f3
.  .  .
.  .  .

我发现函数contourf需要f是一个矩阵(而我有一个带有对应点的向量)。

如何生成这个情节?

标签: matlabplotoctave

解决方案


您传递给的xyz变量contourf都是大小相同的矩阵。对于每个点,您都需要一个xyz值。您可以meshgrid用来制作具有 x 和 y 值的所有组合的矩阵。

此示例来自contourf. 我添加了一些评论来解释发生了什么

% Create a vector of x values
x = linspace(-2*pi,2*pi);
% Create a vector of y values 
y = linspace(0,4*pi);
% Make matrices with all combinations of x and y values for plotting
[X,Y] = meshgrid(x,y);
Z = sin(X)+cos(Y);
contourf(X,Y,Z)

这是上面代码的结果 在此处输入图像描述


推荐阅读