MATLAB数据文件读写:1.格式化读写文件
格式化读写文件
matlab提供了对数据文件建立、打开、读取、写入、关闭等操作的函数。
数据文件可以分为两类:
- 文本文件:以ASCII码形式存储的文本文件;编码基于字符定长,译码相对容易
- 二进制文件:以二进制形式存储的文本文件;编码是变长的,存储灵活、效率高,节省空间;对应比较精确的数据,二进制存储不会造成有效位的缺失;
基本的文件操作函数
- 打开和关闭文件:fopen、fclose
- 格式化读写:fscanf、fprintf
- 文件定位与状态:fseek、ftell、feof、ferror、frewind
(类似c语言)
1.文件的打开
fileID = fopen(fileName);
- 打开文件filename以便以二进制方式进行读取,并返回等于或大于3的整数文件标识符,作为文件句柄
- 如果文件无法的打开、不存在,fopen()函数返回-1,并且设置错误标志。
- matlab保留文件标识符0、1、2分别用于标准输入、输出、错误输出。
fileID = fopen(fileName,permisssion);
- 打开由permission指定访问类型的文件
permission参数(文件访问类型):
- ‘r’:以只读方式打开文件,文件必须存在。
- ‘w’:以写方式打开文件,如果文件不存在,则创建新文件;如果文件存在,则覆盖原有文件。
- ‘a’:以追加方式打开文件,如果文件不存在,则创建新文件;如果文件存在,则在文件末尾追加内容。
- ‘r+’:以读写方式打开文件,文件必须存在。
- ‘w+’:以读写方式打开文件,如果文件不存在,则创建新文件;如果文件存在,则覆盖原有文件。
- ‘a+’:以读写方式打开文件,如果文件不存在,则创建新文件;如果文件存在,则在文件末尾追加内容。
- ‘A’:打开文件以追加(但不自动刷新)当前输出缓存区
- ‘W’:打开文件以写入(但不自动刷新)当前输出缓存区
2.文件的关闭
fclose(fileID);
- 关闭由fileID指定的文件。
- 成功关闭文件后,文件标识符fileID将变为-1。
fclose(‘all’);
- 关闭所有打开的文件。
status = fclose(fileID);
- 关闭由fileID指定的文件,并返回0表示成功,-1表示失败。
3.文本文件的读写
fprintf;
- 此MATLAB函数按列顺序将formatSpec应用于数组A1,……,An的所有元素,并将结果写入到一个文本文件。
- formatSpec是一个格式字符串,它指定了输出的格式。
fprintf(fileID,formatSpec,A1,…,An);
- 按列顺序将formatSpec应用于数组A1,……,An的所有元素,并将结果写入到由fileID指定的文件中。
fprintf(formatSpec,A1,…,An);
- 设置数据的格式并在屏幕上显示结果
formatSpec特殊字符:
-
%d:有符号整数
-
%f:浮点数(使用精度操作符指定小数点后的位数)例如:%f表示3.14159,%.2f表示3.14
-
%s:字符串(字符向量或字符串数组)
-
%c:字符
-
%e:指数形式的浮点数(科学计数法,如3.14159e+00)
-
%%:输出一个%符号
-
\n:换行符
-
\t:制表符
-
\b:退格符
-
\r:回车符
-
\v:垂直制表符
-
\ \:输出一个反斜杠
例子:
x=0:0.1:1;
A=[x;exp(x)];
fid=fopen('data.txt','w');
fprintf(fid,'%6s %12s\n','x','exp(x)');
for ii=1:size(x,2)fprintf(fid,'%6.2f %12.8f\n',A(1,ii),A(2,ii));
end
fclose(fid);
x=0:0.1:1;
A=[x;exp(x)];
fileID=fopen('data.txt','w');
fprintf(fileID,'%6s %12s\n','x','exp(x)');
% 写入一行字符串
fprintf(fileID,'%6.2f %12.8f\n',A);
% 写入浮点数矩阵
fclose(fileID);
例2:
a=rand(10);
fid=fopen('rand1.txt','w');
fprintf(fid,'%f\n',a);
fclose(fid);
for ii=1:10a=rand(10);filename=strcat('rand',num2str(ii),'.txt');fid=fopen(filename,'w');fprintf(fid,'%f\n',a);fclose(fid);
end
更详细的语法参考help文件
- 格式化操作符
- 转换字符
- 可选操作符
- 字段宽度
A=fscanf(fileID,formatSpec);
- 将打开的文本文件中的数据读取到列向量A中。并根据formatSpec指定的格式进行转换。
- fsacnf函数在整个文件中重新应用该格式,并将文件指针定位在该文件结尾标记处
- 如果无法将formatSpec与文件中的数据匹配,将会只读取匹配的部分并停止处理
- 该文本文件由文件标识符fileID指定,必须先使用fopen()函数打开文件,指定字符编码,以及获取fid值。读取文件后,必须使用fclose()函数关闭文件。
A=fscanf(fileID,formatSpec,sizeA);
- 将打开的文本文件中的数据读取到维度为sizeA的数组A中。并将文件指针定位到最后读取的值之后。sancf按列顺序填充A
例子:
fid=fopen('data.txt','r');
formatSpec='%d %f';
A=fscanf(fid,formatSpec);sizeA=[2 Inf];
A=fscanf(fid,formatSpec,sizeA);
A=A.';
fclose(fid);
其他文本读写函数
- C=textscan(filename,formatSpec,N):从文本或字符串读取格式化数据
- tline=fgets(fileID):从文件中读取一行文本数据并保留换行符
- tline=fgetl(fileID):从文件中读取一行文本数据并删除换行符
文件读取中信息的获取
status = fseek(fileID,offset,origin)
- fseek函数定位文件位置指针;fileID为文件句柄
- offset为偏移量,表示位置指针相对移动的字节数,若为正整数,则向后移动;若为负整数,则向前移动
- origin为起始位置,有三种取值:‘bof’、‘cof’、‘eof’,分别表示文件开头、当前位置、文件结尾
- 若定位成功,返回0;若定位失败,返回-1
position = ftell(fileID)
- ftell函数返回文件位置指针的当前位置,单位为字节数
- 返回值为从文件开始到当前位置的字节数
- 若文件标识符fileID无效,返回-1
eoftes=feof(fileID)
- feof函数测试指定文件是否设置了EOF标记,若设置了EOF标记,返回1;否则返回0
frewind(fileID)
- frewind函数将文件位置指针定位到文件开头
相关文章:
MATLAB数据文件读写:1.格式化读写文件
格式化读写文件 matlab提供了对数据文件建立、打开、读取、写入、关闭等操作的函数。 数据文件可以分为两类: 文本文件:以ASCII码形式存储的文本文件;编码基于字符定长,译码相对容易二进制文件:以二进制形式存储的文…...

NFTScan | 09.16~09.23 NFT 市场热点汇总
欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期:2024.09.16~ 2024.09.22 NFT Hot News 01/ DeGods 推出代币 DEGOD,用户可通过 DeGods、y00ts 或 DUST 进行转换 9 月 16 日,Solana NFT 项目 DeGods 推出代币…...

rabbitmq整合skywalking并编写自定义插件增强
rabbitmq整合skywalking 首先先下载准备好skywalking 的服务端和ui控制台,java-agent https://skywalking.apache.org/downloads/ 整合skywalking 我的流程是在生产者和消费者服务中去引入一个mq的sdk,具体SDK的内容可以查看这篇文章 在sdk的pom文件…...
sftp登录ipv6用中括号 `sftp x@[ipv6]`
sftp登录ipv6用中括号 sftp x[ipv6] 实例 sftp root[2::fd40:1:1]SFTP(Secure File Transfer Protocol,安全文件传输协议)是一种基于SSH(Secure Shell)的安全协议,用于在网络上安全地传输文件。当需要登录…...

Python 从入门到实战25(模块)
我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。 上篇文章我们讨论了类继承的相关知识。今天我们将学习一下模块的…...

Leetcode面试经典150题-172.阶乘后的零
给定一个整数 n ,返回 n! 结果中尾随零的数量。 提示 n! n * (n - 1) * (n - 2) * ... * 3 * 2 * 1 示例 1: 输入:n 3 输出:0 解释:3! 6 ,不含尾随 0示例 2: 输入:n 5 输出&a…...

【机器学习】揭秘GBDT:梯度提升决策树
目录 🍔 提升树 🍔 梯度提升树 🍔 举例介绍 3.1 初始化弱学习器(CART树) 3.2 构建第一个弱学习器(CART树) 3.3 构建第二个弱学习器(CART树) 3.4 构建第三个弱学习…...

Android Studio 2024 安装、项目创建、加速、优化
文章目录 Android Studio安装Android Studio项目创建Android Studio加速修改GRADLE_USER_HOME位置减少C盘占用空间GRADLE加速 修改模拟器位置减少C盘占用空间参考资料 Android Studio安装 下载android studio download android-studio-2024.1.2.12-windows.exe 或者 android-…...

JSP(Java Server Pages)基础使用
首先在web文件夹中新建一个jsp/jspx文件,这个文件就是jsp文件 <%--Created by IntelliJ IDEA.User: ***Date: 2024/9/23Time: 18:43To change this template use File | Settings | File Templates. --%> <% page contentType"text/html;charsetUTF-…...

数据结构 - 概述及其术语
经过上一章节《数据结构与算法之间有何关系?》的阐述,相信大家对数据结构多少有了点了解,今天我们将进入数据结构的正式学习中。 在计算机科学中,数据结构是一种数据管理、组织和存储的格式。它是相互之间存在一种或多种特定关系的…...
UE5——在线子系统
Unreal Engine 5 (UE5) 的在线子系统(Online Subsystem)实现多人在线游戏的原理涉及到网络编程和分布式系统设计中的多个方面。以下是该系统工作的一些核心概念和技术: 1. 客户端-服务器架构: - 大多数现代多人在线游戏采用客户端-服务器模型…...

9.23-部署项目
部署项目 一、先部署mariadb [rootk8s-master ~]# mkdir aaa [rootk8s-master ~]# cd aaa/ [rootk8s-master aaa]# # 先部署mariadb [rootk8s-master aaa]# # configmap [rootk8s-master aaa]# vim mariadb-configmap.yaml apiVersion: v1 kind: ConfigMap metadata:name: ma…...
非标独立设计选型--二十六--电磁阀的选型件算
电磁阀:电磁控制---自动化的关键 PLC ---- 继电器----电磁阀----调速阀----气缸 供气源--- 【电磁阀主要负责:换向,实现气缸的动作变化】 电磁阀有哪些参数是会影响到使用的? …...
flume系列之:出现数据堆积时临时增大sink端消费能力
flume系列之:出现数据堆积时临时增大sink端消费能力 一、背景二、增大sink端消费能力flume系列之:flume生产环境sink重要参数理解 一、背景 flume出现数据堆积,消费的数据持续堆积在channel中参数org_apache_flume_channel_channel1_channelfillpercentage的值大于0,并且持…...
SQL Server全方位指南:从入门到高级详解
本文将分为三大部分,逐步深入SQL Server的基础知识、进阶技巧和高级特性,旨在帮助从初学者到经验丰富的开发人员深入理解和使用SQL Server。 一、入门篇 1.1 什么是SQL Server? SQL Server 是由微软开发的关系型数据库管理系统(…...
【JavaSE】IO模型
IO,英文全称是 Input/Output,翻译过来就是输入/输出。我们听得挺多,就是磁盘 IO,网络 IO 等。IO 即输入/输出,到底谁是输入?谁是输出?IO 如果脱离了主体,会让人疑惑。 计算机角度的…...

手术缝合线合格品检测项目众多 线径又是其重要一环!
手术缝合线的合格与否,关系着使用及恢复情况,其品质的优劣非常重要,而要想得到合格的手术缝合线,则需要多种类型的仪器进行检测。其中线径就是重要一环,下面来看看线径检测仪,并简单介绍一下其他所需检测信…...

STM32 单片机最小系统全解析
STM32 单片机最小系统全解析 本文详细介绍了 STM32 单片机最小系统,包括其各个组成部分及设计要点与注意事项。STM32 最小系统在嵌入式开发中至关重要,由电源、时钟、复位、调试接口和启动电路等组成。 在电源电路方面,采用 3.3V 直流电源供…...
深度解析ElasticSearch:构建高效搜索与分析的基石原创
引言 在数据爆炸的时代,如何快速、准确地从海量数据中检索出有价值的信息成为了企业面临的重要挑战。ElasticSearch,作为一款基于Lucene的开源分布式搜索和分析引擎,凭借其强大的实时搜索、分析和扩展能力,成为了众多企业的首选。…...

【Python常用模块】_PyMySQL模块详解
课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)教程合集 👈👈…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...
第八部分:阶段项目 6:构建 React 前端应用
现在,是时候将你学到的 React 基础知识付诸实践,构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段,你可以先使用模拟数据,或者如果你的后端 API(阶段项目 5)已经搭建好,可以直接连…...
高防服务器价格高原因分析
高防服务器的价格较高,主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因: 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器,因此…...
[特殊字符] 手撸 Redis 互斥锁那些坑
📖 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作,想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁,也顺便跟 Redisson 的 RLock 机制对比了下,记录一波,别踩我踩过…...