matlab - 如何在 Octave/MATLAB 中使用给定数据点制作二维等高线图?
问题描述
我有一个矩阵,其三列对应于 x、y 和 f 值。我想f(x,y)
用 Octave/MATLAB 从这些数据中绘制 x,y 平面的等高线图。
比方说,矩阵M
是
x1 y1 f1
x2 y2 f2
x3 y3 f3
. . .
. . .
我发现函数contourf需要f
是一个矩阵(而我有一个带有对应点的向量)。
如何生成这个情节?
解决方案
您传递给的x
、y
和z
变量contourf
都是大小相同的矩阵。对于每个点,您都需要一个x
、y
和z
值。您可以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)
推荐阅读
- lua - Lua:在两个字符串之间查找字符串
- javascript - MUI Tab-组件属性到 Tab 渲染但抛出异常
- java - SQL 语句中的错误:NoClassDefFoundError: com/macasaet/fernet/Validator
- javascript - 使用 JavaScript 在栏外单击时如何关闭侧边栏
- perl - 在 Solaris 11 中安装 DBI Perl 模块时出现问题
- audio - Alexa是如何编程唱歌的?
- java - 如何从 recyclerview 创建音频前台通知。任何班级
- r - devtools::install_github 在 R4.0.03 中失败
- java - 使用 Java 将动态 XML 转换为 JSON
- node.js - 关于在 NodeJS 中构建微服务系统的意见。如何让他们通信、共享数据和向客户端公开 API