MATLAB读取txt文本数据及可视化指南

MATLAB读取txt文本数据的说明指南

目录

  • MATLAB读取txt文本数据的说明指南
  • 摘要
  • 1. 数据准备
  • 2. 读取数据
  • 3. 绘制图形
  • 4. 小结

摘要

在MATLAB中,读取txt文本格式文件数据是一项基本的操作,特别是在数据分析和可视化方面。本文将介绍如何使用MATLAB读取txt文本格式文件中的数据,并通过示例生成可用的数据文件,并使用MATLAB绘制对应的图形。

1. 数据准备

首先,准备一份示例数据,并将其保存为txt文本格式文件。示例数据可以是任何符合文本格式的数据,例如二维坐标数据或三维坐标数据。(也即各位朋友们需要处理的txt文件啦,这里由于博主方便给大家理解,所以使用MATLAB随机生成了一组数据,用于示意哦(#.#))

示例数据:

这里假设使用MATLAB生成模拟的三维地形数据,并将其保存为txt格式。这里我们生成一个20x20的矩阵作为示例,并为每个点生成高度值作为地形数据,并将其保存为名为'terrain_data.txt'的txt文本文件。下面是示例代码及对应的数据:

%% 1. 生成模拟数据---8个批量txt
[X,Y] = meshgrid(1:20, 1:20);
for m=1:8
    Z = peaks(20);
    txtname=['terrain_data_',num2str(m),'.txt'];
    dlmwrite(txtname, Z, 'delimiter', '\t');
end

在这里插入图片描述

生成的8个txt批量数据如下:

在这里插入图片描述

对应的txtx文本数据

在这里插入图片描述

2. 读取数据

接下来,我们将使用MATLAB读取这个txt文本文件中的数据。

MATLAB代码:

%% 2. MATLAB批量读取txt文本数据
file_path = cd; % 设置txt文件存储路径 (此处为当前文件夹)
file_list = dir(fullfile(file_path, '*.txt')); % 获取文件列表 dir 函数
data_cell = cell(numel(file_list), 1); % 创建单元格数组存储数据
k=numel(file_list);   % 计划绘制的文件数据量
for i = 1:k   % 循环读取并绘制地形数据
    file_name = file_list(i).name;
    file_data = importdata(fullfile(file_path, file_name)); % 读取txt文件数据
    data_cell{i} = file_data; % 存储数据到单元格数组中
end

易错点和重点:

  • 文件路径: 确保文件路径正确,或者将文件与MATLAB脚本放在同一目录下。
  • 数据格式: 确保txt文本数据的格式与MATLAB读取函数(如dlmread)兼容,否则可能导致读取错误。
  • 读取方法: 可以根据实际情况选择不同的读取方法,例如dlmreadtextscan等。

3. 绘制图形

读取数据后,我们可以使用MATLAB可视化数据。

示例数据:

基于上述三维坐标数据文件,包含三列数据:X坐标、Y坐标和Z坐标。 (X,Y 坐标可以为其他数据,按照上述方式读取再整理即可)
可以选择分开分别绘图:

MATLAB代码:

%% 3. 绘制三维地形图
% ① 分开批量绘制txt文件数据
for j=1:k
    data = data_cell{j};

    % 绘制三维地形图
    figure(j)
    surf(data);
    xlabel('X');
    ylabel('Y');
    zlabel('Z');
    figtitle=['3D Terrain Map',num2str(j)];
    title(figtitle);
    colorbar; % 添加颜色刻度
end

如图所示:
在这里插入图片描述
或者全部集成到一张子图里(这个可以用来当做subplot绘制子图的案例模板哦,使用subplot绘制子图并确定position参数的方法见博主下一篇文章)

% ② 一起批量绘制txt文件数据
h1=figure;
set(h1,'Position',[100, 100, 1400, 600]);
pos1=[0.05 	0.55 	0.19 	0.35 
0.29 	0.55 	0.19 	0.35 
0.53 	0.55 	0.19 	0.35 
0.77 	0.55 	0.19 	0.35 
0.05 	0.10 	0.19 	0.35 
0.29 	0.10 	0.19 	0.35 
0.53 	0.10 	0.19 	0.35 
0.77 	0.10 	0.19 	0.35];  % Position方法如何确定可以参见下一篇文章:https://blog.csdn.net/weixin_43323302/article/details/136383424

for j=1:k
    data = data_cell{j};
    figtitle=['3D Terrain Map',num2str(j)];
    subplot('Position',pos1(j,:));
    surf(data);
    xlabel('X');
    ylabel('Y');
    zlabel('Z');
    figtitle=['3D Terrain Map_',num2str(j)];
    title(figtitle);
    colorbar; % 添加颜色刻度
    
end

如图所示:

在这里插入图片描述

易错点和重点:

  • 数据列选择: 确保正确选择X、Y和Z坐标的列。
  • 图形类型: 选择合适的图形类型来展示三维数据,如散点图或曲面图等。
  • 绘图设置: 通过适当调整子图数量和排列方式,确保图形布局整齐清晰。

4. 小结

本文了如何使用MATLAB读取txt文本格式文件中的数据,并通过示例数据生成可用的数据文件。在使用MATLAB进行txt文本数据分析和可视化时,请注意文件路径、数据格式、读取方法以及图形格式的选择,以确保结果的准确性和可视化效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/428779.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【代码随想录算法训练营Day35】435.无重叠区间;763.划分字母区间;56.合并区间

文章目录 ❇️Day 36 第八章 贪心算法 part05✴️今日任务❇️435. 无重叠区间自己的思路自己的代码(✅通过81.59%)随想录思路随想录代码 ❇️763.划分字母区间自己的思路自己的代码(✅通过55.30%)随想录思路随想录代码 ❇️56. 合…

利用Python自动化日常任务

在快节奏的现代生活中,时间就是一切。幸运的是,Python提供了一系列强大的库和工具,可以帮助我们自动化那些乏味且重复的任务,从而释放我们的时间,让我们可以专注于更有创造性和有意义的工作。下面,我们将探…

【网站项目】158企业人事管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

chatgpt-next-web搭建教程,超低成本部署属于自己的ChatGPT

随着AI的应用变广,各类AI程序已逐渐普及,尤其是在一些日常办公、学习等与撰写/翻译文稿密切相关的场景,大家都希望找到一个适合自己的稳定可靠的ChatGPT软件来使用。 ChatGPT-Next-Web就是一个很好的选择。它是一个Github上超人气的免费开源…

加密与安全_探索签名算法

文章目录 概述应用常用数字签名算法CodeDSA签名ECDSA签名小结 概述 在非对称加密中,使用私钥加密、公钥解密确实是可行的,而且有着特定的应用场景,即数字签名。 数字签名的主要目的是确保消息的完整性、真实性和不可否认性。通过使用私钥加…

2000-2021年全国各省市城乡平均受教育年限数据(分城镇和农村)(含原始数据+计算过程+计算结果)

2000-2021年全国各省市城乡平均受教育年限数据(分城镇和农村) 1、时间:2000-2021年 2、范围:全国及31省 3、来源:人口与就业统计年鉴 4、指标包括:城乡平均受教育年限 、6岁以上总人口 未上过学、…

【卡尔曼滤波】图文结合带你详细推导卡尔曼滤波(超详解)

大家好,好久不见,我是小政。读研期间,我的研究方向是协作定位,涉及到多机器人分布式融合,主要用到了卡尔曼滤波,CI融合等概念。卡尔曼滤波我也是研究了很久,一直在思考的问题就是,卡…

Redis核心数据结构之SDS(一)

数据结构与对象 简单动态字符串 概述 Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,简称C字符串),而是自己构建了一种名为简单动态字符串(Simple Dynamic String, SDS)的后向类型,并将SDS用作Redis的默认字符串表示。在…

代码复现错误

1. 问题: torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 64.00 MiB (GPU 0; 39.59 GiB total capacity; 37.72 GiB already allocated; 38.19 MiB free; 37.83 GiB reserved in total by PyTorch) If reserved memory is >> allocat…

《TCP/IP详解 卷一》第11章 DNS

目录 11.1 引言 11.2 DNS名称空间 11.2.1 DNS命名语法 11.3 名称服务器和区域 11.4 DNS缓存 11.5 DNS 协议 11.5.1 DNS消息格式 11.5.2 DNS 扩展格式(EDNS0) 11.5.3 UDP 或 TCP 11.5.4 问题(查询)和区域区段格式 11.5.…

什么是SpringCloud,有哪些组件?

spring Cloud 是基于spring boot的分布式系统开发工具,它提供了一系列开箱即用的,针对分布式系统开发的特性和组件。用于帮助开发人员快速构建和管理云原生应用程序。 Spring Cloud 的主要目标是解决分布式系统中的常见问题,例如服务发现,负载均衡,配置管理,断路器,消息总…

搜索回溯算法(DFS)1------递归

目录 简介: 递归问题解题的思路模板 例题1:汉诺塔 例题2:合并两个有序链表 例题3:反转链表 例题4:两两交换链表中的节点 例题5:Pow(x,n)-快速幂 结语: 简介&…

C++_哈希表

目录 1、哈希表的用法 2、哈希函数-除留余数法 3、哈希冲突 4、闭散列和开散列 4.1 闭散列 4.1.1 哈希表的扩容 4.1.2 二次探测 4.2 开散列(哈希桶) 4.2.1 开散列的扩容 结语 前言-哈希表概念: 哈希表也是一种存储信息的结构&am…

数据结构(一)——概述

一、绪论 1.1数据结构的基本概念 数据:用来描述客观事物的数、计算机中是字符及所有能输入并被程序识别和处理的符号的集合。 数据元素:数据的基本单位,一个数据元素可由若干数据项组成。 数据结构:指相互之间存在一种或多种特…

“羊驼“入侵CV,美团浙大沈春华团队将LLaMA向CV扩展,构建全新基础模型VisionLLaMA

本文首发:AIWalker https://arxiv.org/abs/2403.00522 https://github.com/Meituan-AutoML/VisionLLaMA 本文概述 大型语言模型构建在基于Transformer的架构之上来处理文本输入, LLaMA 系列模型在众多开源实现中脱颖而出。类似LLaMa的Transformer可以用来处理2D图像吗&#xf…

FreeRTOS学习笔记-基于stm32f103(1)基础知识

一、裸机与RTOS 我们使用的32板子是裸机,又称前后台系统。裸机有如下缺点: 1、实时性差。只能一步一步执行任务,比如在一个while循环中,要想执行上一个任务,就必须把下面的任务执行完,循环一遍后才能执行…

【Java设计模式】三、简单工厂、工厂方法模式、抽象工厂模式

文章目录 0、案例:咖啡屋1、简单工厂模式 静态工厂(不属于23种之列)2、工厂方法模式3、抽象工厂模式4、简单工厂模式 配置文件解除耦合5、JDK源码中对工厂模式的应用 0、案例:咖啡屋 模拟咖啡店点餐。咖啡有多种,抽…

day6 数组 嵌套循环

1&#xff1a;打印杨辉三角 91 int arr[6][6];92 int i,j0;93 for(i0;i<6;i)94 {95 for(j0;j<i;j) 96 {97 if(j0||ij)98 {99 arr[i][j]1; …

14 数值稳定性 + 模型初始化和激活函数【李沐动手学深度学习v2笔记】

1. 数值稳定性 神经网络的梯度 向量对向量求导&#xff08;梯度&#xff09;得到矩阵&#xff0c;太多的矩阵进行乘法会导致常见的两个问题 梯度消失和梯度爆炸 MLP MLP使用ReLU作为激活函数 梯度爆炸的问题 输入很大的时候梯度接近为0 梯度消失 梯度消失的问题 只能训练比…

一个强大的 VS Code 的AI代码插件:Fitten Code

AI 代码助手有 GitHub Copilot&#xff0c;一直想用&#xff0c;但是要爬梯子&#xff0c;还要收费。 一款国产AI写代码神器 Fitten Code&#xff0c;满足了我对AI写代码的幻想。它在功能上基本和 GitHub Copilot 差不多。 重要是的是&#xff0c;免费&#xff0c;免费&#…