当前位置: 首页 > news >正文

Matlab的部分文件操作

Author:Maddock

Date:2015-01-20

读取TXT文件内容到矩阵

img.txt数据读入到R矩阵

R = importdata('img.txt');

矩阵保存到读取TXT文件

f_id=fopen('testimg\debug\test.txt','wt');%在当前目录以写的方式打开或创建txt文件
a=randi(9,10);%定义要输出的矩阵 这里用了一个随机整数矩阵代表要输出的结果做示例
for i=1:10
    fprintf(f_id,'%d ',a(i,:));%输出 可以整行输出 并统一控制格式
    fprintf(f_id,'\n');%换行
end
fclose(f_id);%关闭文件

 

判断文件是否存在

infilename = [str,'\lena.jpg'];
sgc_exist = exist(infilename, 'file'); % 由变量 sgc_exist 返回文件是否存在,因为是判断文件是否存在,所以第二个参数写'file'
if sgc_exist ~= 0
    disp('lena.jpg is exist');
end

遍历文件中某个后缀的所有文件

 

dir函数:获得指定文件夹下的所有子文件夹或文件,并存到文件结构数组中.

 

调用方式:

 

dir('.')列出当前目录下所有子文件夹和文件

 

dir('G:\Matlab')列出指定目录下所有子文件夹和文件

 

dir('*.m')列出当前目录下符合正则表达式的文件夹和文件

 

比如说在d:\filetxt下有一系列txt文件,文件名符合matlab变量名的命名规则。

    file=dir('d:\filetxt\*.txt');
    for n=1:length(file)
         str = ['d:\filetxt\',file(n).name];
         disp(str);
    end

打开文件操作

 

http://www.cnblogs.com/longdouhzt/archive/2013/01/29/2881749.html

 

1、  Matlab文件操作主要有三个步骤:首先打开文件,然后对文件进行读写操作,最后要关闭文件。

 

2、  fid=fopen(文件名,打开方式)

 

'r'

只读,文件必须存在(缺省的打开方式)

'w'

写文件,若文件已存在则原内容将被覆盖;若文件不存在则新建一个

'a'

在文件末尾添加,文件若不存在则新建一个

'r+'

可读可写,文件必须存在

'w+'

可读可写,若文件已存在则原内容将被覆盖;若文件不存在则新建一个

'a+'

可读可写可添加,文件若不存在则新建一个

 

3、  fid 为文件句柄,其它函数可以用它对该文件进行操作。如果句柄值大于 0,则表示文件打开成功;若打开失败,fid 的返回值为 -1。

 

fid=fopen('output.txt','wt+');

 

fprintf(fid,'Hello world!\n');

 

fclose(fid);

 

4、  有两个标准代码文件,不需打开就可以直接使用,分别为:fid=1 标准输出文件,fid=2 标准错误文件。

 

fprintf(1,'Hello world!\n');

 

fprintf(2,'Hello world!\n');

 

5、  若不指定打开方式,则表示只读。

 

6、  文件有两种格式:二进制文件(b)和文本文件(t)。

 

6、在Windows下,打开文件的默认是二进制格式,如果要以文本方式打开,则必须在打方式中加上字符 't'。

 

fid=fopen('output.txt','wt+');

 

7、  其中 fid 为所要关闭的文件的句柄,status 为关闭文件的返回代码,若关闭成功则为 0,否则为 -1。

 

status=fclose(fid);

 

8、  文本文件的读取

 

[A,count]=fscanf(fid,format,size)

 

A 用来存放读取的数据

 

count 返回读取数据的个数,为可选项

 

fid 为文件句柄

 

size 为可选项,缺省为读取整个文件,

 

若给出,则取值可以是:

 

N

读取 N 个数据到一个列向量

Inf

读取整个文件

[m,n]

读取 m ´ n 个数据到一个  m ´ n 矩阵中,按列存放

 

 

 

 

 

 

 

 

 

 

 

format 用来控制读取的数据格式,由 % 加上格式符组成,下表中是常见的格式符,在 % 之后可以加上数据宽度,如 %12d

 

c

字符型

g

浮点数(自动)

d

十进制整数

o

八进制

e

浮点数(科学计数法)

s

字符串

f

浮点数(小数形式)

x

十六进制

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9、文本文件的写入

 

count=fprintf(fid,format,输出变量列表)

 

  • 将输出变量按指定的格式写入文件中
  • 若省略 fid,则表示在屏幕上输出
  • count 返回所写入的数据元素个数(可省)
  • format 以 % 开头,通常由以下几个部分组成:

 

 

 

l  fprintf 命令的格式说明符

 

c

字符型

g

浮点数(自动)

d

十进制整数

o

八进制

e

浮点数(科学计数法)

s

字符串

f

浮点数(小数形式)

x/X

十六进制

 

l  format 中还可以使用的特殊字符

 

\b

退后一格

\t

水平制表符

\f

换页

\\

反斜杠

\n

换行

''

单引号

\r

回车

%%

百分号

 

10、读写的定位

 

  • 打开文件读写数据时,需要判断和控制文件的读写位置,如数据是否读完,或者需要读写指定位置上的数据等。
  • 在读写文件时,Matlab 自动创建一个文件位置指针来管理和维护文件读写数据的起始位置。
  • Matlab 提供了几个文件位置指针定位操作函数:fseek、ftell 、 frewind 和 feof

 

Fseek:

 

status=fseek(fid,offset,origin)

 

fid 为文件句柄

 

offset 表示位置指针相对偏移的字节数,若为正表示向文件尾方偏移,若为负表示向文件头方向偏移

 

origin 表示位置指针移动的参照位置,有三种取值:

 

'cof' 表示当前位置,

 

 'bof' 表示文件的开始位置,

 

 'eof' 表示文件末尾;

 

若定位成功,status 返回值为 0,否则返回 -1

 

    ftell、frewind 和 feof:

 

返回值为从文件开始到指针当前位置的字节数:position=ftell(fid)

 

将位置指针返回到文件的起始位置:frewind(fid)

 

判断文件位置指针是否达到文件结束位置,若文件位置指针已在文件末尾,则返回 1,否则返回 0:eofstat=ftell(fid)

 

转载于:https://www.cnblogs.com/adong7639/p/4236579.html

相关文章:

  • 如何管理?
  • 系统时钟和硬件时钟同步
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • zblog2.0博客建站视频教程
  • Product Google的十大设计原则
  • 如何修复U盘提示被写保护的问题
  • 浅谈Docker(一)
  • 使用SharedPreferences存储数据
  • [JDBC-1] JDBC Base Template
  • Ant编译环境
  • 中转server
  • sl4a
  • SGU[107] 987654321 problem
  • study notes: high performance linux server programming
  • 阿里云修改CentOS Linux服务器的主机名
  • Django 博客开发教程 8 - 博客文章详情页
  • es6(二):字符串的扩展
  • JS函数式编程 数组部分风格 ES6版
  • KMP算法及优化
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • select2 取值 遍历 设置默认值
  • 半理解系列--Promise的进化史
  • 从PHP迁移至Golang - 基础篇
  • 力扣(LeetCode)22
  • 强力优化Rancher k8s中国区的使用体验
  • 温故知新之javascript面向对象
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • ionic异常记录
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​你们这样子,耽误我的工作进度怎么办?
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (1)Android开发优化---------UI优化
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (阿里云万网)-域名注册购买实名流程
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (三) diretfbrc详解
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十一)手动添加用户和文件的特殊权限
  • (轉貼) UML中文FAQ (OO) (UML)
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET值类型变量“活”在哪?
  • @GetMapping和@RequestMapping的区别
  • @Repository 注解
  • [Android]一个简单使用Handler做Timer的例子
  • [Asp.net mvc]国际化
  • [BJDCTF2020]The mystery of ip