已知三列数据的文本文件,如何用Matlab画三维图

三列数据格式:112039行乘以3列。如果需要数据,因为没有办法上传,请跟我说,我可以单独传给你。
我用Origin8.0画出的三维图如下图所示:

希望用matlab也可以画出这个效果。

用surf(x,y,z)函数

    x,y,z分别代表三列数据或者三个矩阵(大小必须一样),就能画出你所要的三维图了。

Matlab

    MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。

    是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

    它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

    MATLAB和Mathematica、Maple并称为三大数学软件。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-02

是这个效果吗?用surf函数很容易实现

第2个回答  推荐于2017-11-25
代码如下:
x=[..........];%省略号换成你的x数据
y=[.........];
z=[...............];
[X,Y]=meshgrid(x,y);
Z=meshgrid(z,z);
surf(X,Y,Z);
grid on;
xlabel('X Axis');
ylabel('Y Axis');
zlabel('Z Axis');追问

谢谢你给的程序,我按照你给出的程序,编写成为:

load data.txt
x=data(:,1);%省略号换成你的x数据
y=data(:,2);
z=data(:,3);
[X,Y]=meshgrid(x,y);
Z=meshgrid(z,z);
surf(X,Y,Z);
grid on;
xlabel('X Axis');
ylabel('Y Axis');
zlabel('Z Axis'); 

但是运行的结果是:

 

如果你有兴趣回答我的问题,我能问一下你的邮箱吗?我把数据传给你,你试一下,这样可以不?谢谢你!

 

追答

我估计是由于数据量太大了,你要不先试试从你的数据中取出几个100*3的数据,然后重新试试上面的程序,不行的话发我邮箱:[email protected]

追问

数据是不可以随便截取的,因为这是个三维图,如果截取了的话,就会变样了!我已经把数据发到你的邮箱里面了,我用的邮箱是:[email protected]。谢谢你还能这样认真的回答我的问题!!
非常感谢!

本回答被网友采纳
第3个回答  2012-06-29
用surf(x,y,z)函数,x,y,z分别代表三列数据或者三个矩阵(大小必须一样),就能画出你所要的三维图了。追问

首先谢谢你给的建议,我已经用过surf(x,y,z)和mesh(x,y,z)这两个函数画图,但是画不出上面的效果,如果你有兴趣的话,我可以把数据传给你,我的邮箱是:[email protected]。你给我发个邮件,我会把那数据传给你。再次谢谢你的建议!

相似回答