MATLAB-txt数据绘制三维图

本文介绍了如何在MATLAB中导入带有非数字首行的txt文件,通过修改数据格式后读取并进行归一化处理,最后用mesh和plot函数绘制三维和二维截面曲线。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



前言

txt文件存储三维坐标点,通过txt文件导入数据并绘制归一化的三维图。


一、txt数据导入

我的txt文件格式如下图:(部分截图,txt文件为直接从其他软件导出的)
在这里插入图片描述

  • 第一个数据为Y\X,代表第一列数据为坐标点的y坐标,第一行为坐标点的x坐标,其余行列为对应了某Y某X的值(相当于z坐标)。
  • 直接读取此txt文件会报错,因为第一个数据不是数字类型,这里可以直接将txt文件的第一个数据改成“100”,当然也可以在MATLAB中直接实现诸如判定是否为数组类型,然后再读取,这里我直接改更简单。
  • 总而言之,现在txt文件中全为数字类型的数据了。可以读取txt数据了。

以下为参考代码:

clear;
file1 = load('XXXX.txt');  % 写你自己文件的路径就行

y = file1(:,1); % y坐标为数据第一列,第一个数据是100,取代了之前的字符y/x
x = file1(1,:); % x坐标为数据第一行
% 但是txt中第一个数据使我们不要的,so->去掉它
m = size(y);  
% 得到数据的大小,我这里是301*1,因为我的数据中x和y的数组大小一样,所以没有读取x的
y1 = y(2:m(1))';  % 去掉第一个数据,并且转置一下,从一列变成一行
x1 = x(2:m(1));
% 读取所有的z坐标值,相当于txt数据中的第2行到最后一行和第2列到最后一列的所有数据
z = file1(2:m(1),2:m(1));  
% 得到最大的z值,然后让所有的z除以这个最大值进行归一化
zmax = max(z,[],"all")
z1 = z./zmax;
  • 目前,我们得到了x、y、z的所有坐标以及归一化后的坐标。

二、画图

以下为参考代码

mesh(x1,y1,z1); % 画图
colorbar; % 图例
title('XX归一化分布'); % 题目
xlabel('x/mm');ylabel('y/mm');zlabel('XX/单位'); % 坐标轴

subplot(1,2,1);
plot(x1,z1(:,fix(m(1)/2)));
title('x方向截面XX曲线');xlabel('x/mm');ylabel('XX/单位');
subplot(1,2,2);
plot(y1,z1(fix(m(1)/2),:));
title('y方向截面XX曲线');xlabel('y/mm');ylabel('XX/单位');

以下为结果图
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值