https://blog.csdn.net/u012366767/article/details/81565427

介绍Matlab读写文本文件的方法,包括load、dlmread、csvread、importdata、textscan、dlmwrite、csvwrite、save等函数的用法。
读文件
1. 纯数字
load test.txt % 导入文本数据,并保存在 test 变量;
 
x= load('test.txt') % 导入文本数据,并保存到x变量;
2. 科学计数法数字
x = load('test.txt')
 
x = dlmread('test.txt')
3. 符号隔开的数字
x= load('test.txt')     % 同一种符号隔开
 
x = dlmread('test.txt')    % 同一种符号隔开
 
x = csvread('test.txt')    % 多种符号隔开
4. 包含头信息
x = importdata('test.txt')
        x.data % 查看读取的数值型数据

x.textdata % 查看读取的文本数据

返回结构体变量、分隔符、头文件行数:

[x, s, h] = importdata('examp02_07.txt');
        逗号作为分隔符,设置读取初始位置:

x = dlmread('test.txt', ',', 2, 0)
        空格作为分隔符,头文件信息 2 行 :

x = importdata('examp02_08.txt',' ',2)

5. 文字数字文字数字混排

fid = fopen('test.txt','r');    % 以只读方式打开
line1 = fgets(fid);    % 读取文件的第1行
line2 = fgets(fid);    % 读取文件的第2行
% 从第3行开始读取数据,将读取的相同数据类型的连续元胞连接成一个元胞数组
A = textscan(fid, '%f %f %f, 'CollectOutput', 1)
line6 = fgets(fid);    % 读取文件的第6行
line7 = fgets(fid);    % 读取文件的第7行
B = textscan(fid, '%f %f %f', 'CollectOutput', 1)
fclose(fid);
fid = fopen('test.txt', 'r');
C_data = textscan(fid, '%f%f%f', 'HeaderLines', 2);  % 从第3行开始读
fclose(fid);

6. 不整齐数字

x = dlmread('test.txt')  % 用 0 补齐
7. 复数

x = dlmread('test.txt')
 
fid = fopen('test.txt', 'r');    
A = textscan(fid, '%f %*s %f %*s','delimiter',' ', 'CollectOutput', 1)
fclose(fid);  
8. 日期

file_content= importdata('test.txt')    % 返回字符串元胞数组
file_content= char(file_content)    % 将字符串元胞数组转为字符矩阵
t = str2num(FileContent(:, 8:9))    % 提取字符矩阵的第8至9列,并转为数字
 
fid = fopen('test.txt', 'r');   
% 用'-,:'作分隔符
A = textscan(fid, '%d %d %d %d %d %f %*s','delimiter','-,:','CollectOutput',1)
fclose(fid);  
9. 字符数字混排

fid = fopen('test.txt');
C = textscan(fid, '%s %s %f32 %d8 %u %f %f %s')    % 以指定格式读取文件中数据
fclose(fid);

fid = fopen('test.txt', 'r');  
A = textscan(fid, '%s %s %s %d %s %d %s %d %s', 'delimiter', ' ')
fclose(fid); 
 
fid = fopen('examp02_11.txt','r');  
A = textscan(fid, '%*s %*s %*s %d %*s %d %*s %d %*s', 'delimiter', ' ','CollectOutput', 1)
fclose(fid);
写文件
1. 写复数
x = [1.455390 + 1.360686i, 8.692922 + 5.797046i; 3.509524 + 5.132495i, 4.018080 + 0.759667i];
% 用逗号(',')作分隔符,用'\r\n'作换行符
dlmwrite('test.txt', x, 'delimiter', ',', 'newline', 'pc')
 
x = 10*rand(2, 6);
fid = fopen('test.txt','wt');
fprintf(fid,'%f+%fi, %f+%fi\n', x);
fclose(fid);
2. 写数字
x = 10000*rand(3, 2);  
fid = fopen('test.txt', 'wt');  
fprintf(fid,'%f    %f    %f\n', x);  % 注意:文件里排布为2行3列,即行优先
%fprintf(fid,'%e  %e  %e\n', x);
fclose(fid);  
 
空一行:dlmwrite('test.txt', x, '-append', 'roffset', 1, 'delimiter', ' ');
分隔符:dlmwrite('test.txt', x, 'delimiter', '\t', 'precision', '%8.4f');
分隔符:dlmwrite('test.csv', x, 'delimiter', ',', 'precision', '%8.4f', 'newline', 'pc');
dlmwrite函数自动补零对齐;
 
csvwrite('csvlist.dat', x);  % 逗号隔开 
 
保存数据、间隔tabs宽度、追加数据:
a=rand(5);
save('a.txt','a','-ascii');  
save('a.txt','a','-ascii','-tabs');  
save('a.txt','a','-append','-ascii','-tabs');
3. 随便写啥
fid=fopen(Fid_FilePath,'wt');
fprintf(fid,'%s\n',Fid_Header); % 写字符串
fprintf(fid,'%10.4f  %10.4f  %10.4f  %10.4f\n', Data_Fid);  % 写数字
fclose(fid);
4. 追加续写
w = 10*rand(1, 4); 
x = 10*rand(1, 3);  
y = 10*rand(1, 2);  
z = 10*rand; 
fid = fopen('test.txt', 'at');   
fprintf(fid, '%-f    %-f    %-f    %-f\n', w);
fprintf(fid, '%-f    %-f    %-f\n', x);
fprintf(fid, '%-f    %-f\n', y);
fprintf(fid, '%-f\n', z);
fclose(fid);
实例
    以下是待写入内容:

Title = Peak File
Num of Peaks = 2048
Time(ms)   --   Amplitude--       Real  --     Imag
0.0000  36061.1716 -31236.0000  18020.0000
0.0500  36075.8757 -31327.0000  17891.0000
0.1000  36169.9271 -31501.0000  17775.0000
0.1500  36114.7887 -31541.0000  17591.0000
    代码如下:

Title = 'Title = Peak File';
Num = ['Num of Peaks =' num2str(length(Module))];
Name = 'Time(ms)   --   Amplitude--       Real  --     Imag';
[filename, pathname] = uiputfile('*.ddd');   % 随便一个后缀名
FileName = [pathname, filename];
dlmwrite(FileName, Title, 'delimiter', '')   % 不加 append 以覆盖同名文件
dlmwrite(FileName, Num, '-append', 'delimiter', '')    % 追加续写
dlmwrite(FileName, Name, '-append', 'delimiter', '')
dlmwrite(FileName, [SampleTime, Module, DataReal, DataImaginary], '-append', 'delimiter', '\t', 'precision', '.4f')

matlab对文本文件的读写相关推荐

  1. Matlab学习笔记——文本文件的读写

    写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 目录 文本文件的读写 fscanf函数和fprintf函数 fmt由%加上格式符组成 文本文件的读写 fscanf函数和 ...

  2. Matlab编程技巧:文本文件的读写

    在MBD(基于模型的设计)中涉及到了各种各样的文本文件,对文本文件的自动化处理可以大大提高工作效率.本文简单介绍处理文本文件的第一步--导入文本文件到Matlab. 文章目录 1 文本文件 2 读取文 ...

  3. MATLAB中文件的读写和数据的导入导出

    http://blog.163.com/tawney_daylily/blog/static/13614643620111117853933/ 在编写一个程序时,经常需要从外部读入数据,或者将程序运行 ...

  4. Java读取文件流用什么对象_使用Java IO流实现对文本文件的读写过程中,通常需要处理下列( )异常。_学小易找答案...

    [论述题]请根据第一次平时作业的选题,结合第二次课内容,自拟一个论文提纲. [单选题]在 switch ( expression )语句中, expression 的数据类型不能是 ( ) [单选题] ...

  5. 【java】简单的方式实现文本文件的读写

    背景 我们在平时的程序编写的过程中,可能会遇到需要文本文件的读写,本文呈现了一种简洁的文件读写方式.代码行数很少. 代码 import java.io.FileInputStream; import ...

  6. 文本文件的读写(字符流)

    package com.hanchao.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java. ...

  7. Python实训day03pm【列表生成式、非文本文件的读写与复制、文本文件读写练习】

    Python实训-15天-博客汇总表 目录 1.列表生成式 2.列表的嵌套 2.1.习题1 2.2.习题2 3.非文本文件的读写 3.1.读取文件的大小 3.2.复制文件 4.课堂练习 列表生成式 非 ...

  8. 标准IO库fgets和fputs对一个文本文件的读写操作

    一 前言 本篇主要讲解如何使用缓冲IO对文件进行读写操作,使用fgets函数和fputs函数. 二 fgets fgets的原型 char *fgets (char *buffer,int buffe ...

  9. 简述UTF-8编码原理及其文本文件的读写技术 【转】

    系统自带的记事本有读写UTF-8文本文件的功能,我想在自编的记事本中也加入这个功能,但在网上查找了一个钟头,竟然找不到用VB编写的代码,看来,天降大任于斯人也,大概要由我来开这个头了. 于是我在网上狂 ...

最新文章

  1. SAP变式配置的完整指南(中英文双语版)
  2. mysql出现unblock with 'mysqladmin flush-hosts'
  3. java final date_Java 8新特性之Date/Time(八恶人-4)
  4. 王者归来!iPhone 13热销立功 苹果重夺销量全球第一
  5. 如何在Windows的PHPstudy中使用redis数据库
  6. java 数组 null值_数组的元素String在java中包含null
  7. 电脑常见故障_笔记本电脑常见故障键盘失效
  8. 网站盗取html文件工具,一键获取仿站精灵
  9. 解析经纬度,将度分转成度
  10. 农场渲染文件服务器搭建,在渲染农场部署Maya to Arnold
  11. PHP反序列化-__wakeup()方法漏洞(CVE-2016-7124)
  12. 三小时学会css(菜鸟教程精华版)【中】
  13. 生信入门(一) Fastqc(测序数据质控)
  14. 数三退一问题||拉手成圈出圈问题
  15. Computer Vision 杂志对何恺明 Rethinking ImageNet Pre-training 的最新评论
  16. mysql 直方图统计_MySQL 8.0 新特性之统计直方图
  17. 虚拟机运行安卓ISO
  18. 李克用置酒三垂冈赋——刘翰(清)
  19. MCAFEE杀毒软件无法完全卸载的解决方案
  20. 老夫整理的1000行MySQL学习笔记,等待有缘人

热门文章

  1. Yarn 国内加速,修改镜像源
  2. Spring AOP示例教程 - Aspect,Advice,Pointcut,JoinPoint,Annotations,XML Configuration
  3. java你画我猜源码_为什么看到Mybatis源码就感到烦躁?
  4. 受检异常和非受检异常
  5. UWP通过机器学习加载ONNX进行表情识别
  6. Tomcat中的连接器是如何设计的
  7. 【熊猫多模式站群开发日志】流程总览
  8. docker 安装 jdk,配置环境变量
  9. vue 实现 router store 文件自动加载
  10. 【Python爬虫】Request库入门