这种问题转换一下思路就可以很简单地解决——尽管很久没正式碰过MATLAB了...:victory:
看help中这个例子:- [X,Y] = meshgrid(-3:.125:3);
- Z = peaks(X,Y);
- meshc(X,Y,Z);
- axis([-3 3 -3 3 -10 5])
复制代码
图形绘制完成之后等值线处于z=-10的位置,那么想改变其具体位置,则需要了解meshc的运作原理,在命令窗口敲:
可以发现与预想完全相同——所谓的meshc只不过就是mesh+contour3的命令集合,既然如此,调整contour3的绘制水平位置就可以圆满解决此问题,在line 64加断点调试,运行上述代码发现workspace中出现了line 59代码:
的运行结果:
原来contour3的绘制秘密就在与此,那么只要将meshc的所有命令另存一个新M文件meshc_bainhome.m,然后在这个新的meshc文件中将上述代码改为:
再运行如下代码:
- [X,Y] = meshgrid(-3:.125:3);
- Z = peaks(X,Y);
- meshc_bainhome(X,Y,Z);
- axis([-3 3 -3 3 -20 5])
复制代码
看看什么结果?其他我想可以不用再所说了。应该也有其他方法,比如寻找contour3的句柄然后hgtransform做平移变换、或者干脆自己写一个mesh+contour3的代码即可(这个我几年前写过,可惜找不到了)
|