我正在尝试将网格与peak结合使用。当我使用如下方阵时:
[x,y] = meshgrid(1:10,1:10)
z = peaks(10)
surf(x,y,z)
一切都很好。
但是,当我使用非方阵时:
[x,y] = meshgrid(-30000:500:0,10:500);
z = peaks(?)
surf(x,y,z)
我收到以下错误:
Data dimensions must agree.
你知道怎么让它工作吗?
谢谢。
发布于 2019-03-24 04:34:58
当您使用surf
绘制一个函数时,您传递给它的变量必须具有相同的大小。尽管您正在将x
和y
矩阵更改为非正方形矩阵,但您并没有创建相应大小的z
矩阵。如果你看一下peaks
的文档,这个tells you函数只能产生正方形的输出,这让事情变得有点复杂。我建议您尝试绘制一些其他的示例函数。
如果一定要绘制peaks
函数,可以使用某种插值:
x = 1:10;
y = 1:10;
[x_mesh, y_mesh] = meshgrid(x,y);
z = peaks(10);
x2 = 1:0.1:10;
y2 = 1:0.5:10;
[x2_mesh, y2_mesh] = meshgrid(x2, y2);
z2 = interp2(x_mesh, y_mesh, z, x2_mesh, y2_mesh);
surf(x2_mesh, y2_mesh, z2);
这给我提供了以下图:
https://stackoverflow.com/questions/55317422
复制相似问题