首页 > 学院 > 开发设计 > 正文

matlab绘制海洋图

2019-11-08 19:53:49
字体:
来源:转载
供稿:网友

MATLAB用于绘制图形效果非常好,所以一般的实验绘图都是由MATLAB完成,对于三维图形MATLAB也能很好地展示。

下面以一块三维曲面为例,绘制海洋图。

首先需要将三维曲面加载进工作空间,我们使用loadoff()函数完成,导入之后存储为filename.mat:

function shape = loadoff(filename)shape = [];f = fopen(filename, 'rt');n = '';while isempty(n)    fgetl(f);    n = sscanf(fgetl(f), '%d %d %d');end    nv = n(1);nt = n(2);data = fscanf(f, '%f');if(length(data) == nv*3 + nt*3)    numsInTri = 3;else     if(length(data) == nv*3 + nt*4)        numsInTri = 4;    else        error('file format not supported');    endendshape.TRIV = reshape(data(end-numsInTri*nt+1:end), [4 nt])';if(numsInTri ==4)    shape.TRIV = shape.TRIV(:,2:4);endif(shape.TRIV(1) == 0)    shape.TRIV = shape.TRIV + 1;enddata = data(1:end-numsInTri*nt);data = reshape(data, [length(data)/nv nv]);shape.X = data(1,:)';shape.Y = data(2,:)';shape.Z = data(3,:)';fclose(f);

接着,便是绘制海洋图,三维曲面以点为元素,所以要将将每个点的数值(比如热核签名的值,比如实验误差等)导入MATLAB中,存成data.mat文件以便下次加载,然后就是绘图啦,下面是代码:

load filename.matload data.matfigure(1)trisurf( filename{1}.TRIV, filename{1}.X, filename{1}.Y, filename{1}.Z, data(:,1)), axis image, lighting phong; %显示三维曲面,lighting phong;是光照%shading interp, %隐藏网格线

colormap jet(2048)  %自定义色彩,有jet,sPRing,autumn等colorbar,  %显示colorbar

caxis([0,1])% 定义colorbar范围大小

%colorbar('YTickLabel',{' '}) %隐藏colorbar刻度 

view([-102 -20]), %视角title('海洋图')axis off


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表