MATLAB【如何将EXCEL或者TXT文本中的离散数据绘制为三维图形】

说明:本文中的数据是以矩阵形式保存在文本中,以行数和列数作为xy轴,数据作为z轴进行绘图。如果三个维度是单独的文本,分别导入MATLAB即可。

第一步:导入数据

方式一:

for tt = 1:1
	filename = sprintf('测试数据\\Data%d.txt',tt);%生成文本名
    fid_doa = fopen(filename);				%打开文本
    for k=1:91					%91为文本行数,根据实际文本进行修改
        tline = fgetl(fid_doa);	%读取一行数据
        if tline==-1
            break;
        end
        data(k,:) = sscanf(tline,'%f ');%浮点型读取
    end
end

方式二:

data = importdata('测试数据\\Data%d.txt')

虽然第一种看着麻烦,但是在处理大批量数据的情况下比第二种要好用的多。解释一下第一种方式,打开文件后,fgetl函数从打开的文件中每次读取一行数据并丢弃其中的换行符。如果读取成功,则tline保存了读取到的本行文本字符串,并指向下一行,如果遇到文件末尾的结束标志(EOF),则函数返回-1,即tline值为-1。

第二步:画图

surf(x,y,z)和mesh(x,y,z)都可以。
在使用两个函数时特别需要注意,x对应z的列数,y对应z的行数,否则会因为维数不匹配报错。函数底层有说明:

must have length(x) = n and length(y) = m where [m,n] = size(Z). In this case, the vertices of the mesh lines are the triples (x(j),y(i),Z(i,j)).

 xrow = 1:size(data,2);
 yrow = 1:size(data,1);
 surf(xrow,yrow,data);
 title('test');
 xlabel('X轴'),ylabel('Y轴'),zlabel('Z轴')

三维效果对比

surf绘图效果:

surf(x,y,z)

在这里插入图片描述
mesh绘图效果:

mesh(x,y,z)

在这里插入图片描述
surfl绘图效果

surfl(x,y,z)	%l是light(光照)的缩写
shading interp;	%flat %faceted设置为阴影显示
colormap(gray)

在这里插入图片描述

  • 13
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值