假设在矩阵M中有一定的2D数据,你知道这样的矩阵代表一个2D函数和两个变量x,y,这是两个向量。这里有一个例子,带有相应的工作区。
现在,我想针对变量a= sin(x)cos(y) b= sin(x)sin(y)绘制这样一个函数M。
因此,我以以下方式定义了一个网格:
[x_grid, y_grid] = ndgrid(x,y);
a_grid = sin(x_grid).*cos(y_grid);
b_grid = sin(x_grid).*sin(y_grid);
现在,我怎样才能把M和a,b相图呢?如果我写:
mesh(a_grid, b_grid, M)
xlabel('a')
blabel('b')
我得到了以下图表:
我不知道我的过程是否正确,但我认为不是,事实上,这样一个过程假设M的行对应于向量a,它的列对应于向量b,但它不是,因为a和b都是x,y的函数。
哪个是正确的程序?
发布于 2022-02-18 14:06:42
据我所知,你希望在同一个窗口有三个地块。这意味着您需要多次调用mesh()
。正如您正确地说的,mesh()
的前两个参数(如果使用三个参数)基本上设置了x-和y-值。要将所有三个曲面都放到同一幅图中,可以使用hold on;
mesh(x_grid, y_grid, M)
hold on
mesh(x_grid, y_grid, a_grid)
mesh(x_grid, y_grid, b_grid)
https://stackoverflow.com/questions/71174639
复制相似问题