lzth.net
当前位置:首页 >> MATLAB中有x,y,z,m四个列向量,m为对应坐标的值,如何用surF画出三维图形,让m根据大小 >>

MATLAB中有x,y,z,m四个列向量,m为对应坐标的值,如何用surF画出三维图形,让m根据大小

这就是一个四维绘图.matlat里面有用颜色表示第四维的方法,具体可以参考下面方法,x1,x2,x3换成了x,y,z,然后y换成了f,代码如下所示.x = [23.500 29.677 37.167 18.000 33.667 37.278 27.222 26.444 27.500 16.583 34.750 17.833 33.853

首先生成网格数据:[x,y]=meshgrid(v1,v2)然后画图咯:counour(x,y,z,30);30是等高线条数.要想放到一张图上显示:counour(x,y,z,30);hold on;counour(x,y,f,30);就ok了想分开的话就:subplot(1,2,1):counour(x,y,z,30);subplot(1,2,2);counour(x,y,z,30)有什么问题再联系吧~

matlab中可以用到的函数有: surf,surface等 调用语法: surf(Z)surf(Z,C)surf(X,Y,Z)surf(X,Y,Z,C) surface(Z) surface(Z,C) surface(X,Y,Z) surface(X,Y,Z,C) surface示例: [X,Y] = meshgrid(-2:0.2:2,-2:0.2:2); Z = X.*exp(-X.^2 - Y.^2); figure surface(X,Y,Z);

将你的X,Y数据的矩阵的数乘以146就可以了也就是原来你是mesh(X,Y,Z)现在mesh(146*X,146*Y,Z)就可以了如果Z也是相应的长度,Z的数据也乘以146;

[x,y,z]=griddata(X,Y,Z,linspace(min(X),max(X))',linspace(min(Y),max(Y)),'v4');surf(x,y,z)或者mesh(x,y,z);

x = [1 2 4 ];y = [2 6 10];z = [4 6 3 7 2 1 8 9 3];[X,Y] = meshgrid(x,y);Z = reshape(z,3,3);mesh(X,Y,Z)

在你的程序中的surf命令下面加上view(2)就行.

这样试试.z=[23 43 51 14 16 15]; [X,Y]=meshgrid([1 2 3 4 5 6]); Z=meshgrid(z); surf(X,Y,Z)

没有明白楼主的意思,一般matlab中画出的三维曲面图,你将鼠标点在你想要知道的点上,就会出现x,y,z的值的

在你原来使用surf函数的时候,增加两个参数就可以了,如下surf(..,'edgecolor','none');

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com