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(,);%定义要输出的矩阵 这里用了一个随机整数矩阵代表要输出的结果做示例
for i=:
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 ~=
disp('lena.jpg is exist');
end
遍历文件中某个后缀的所有文件
dir函数:获得指定文件夹下的所有子文件夹或文件,并存到文件结构数组中.
调用方式:
dir('.')列出当前目录下所有子文件夹和文件
dir('G:\Matlab')列出指定目录下所有子文件夹和文件
dir('*.m')列出当前目录下符合正则表达式的文件夹和文件
比如说在d:\filetxt下有一系列txt文件,文件名符合matlab变量名的命名规则。
file=dir('d:\filetxt\*.txt');
for n=: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)
Matlab的部分文件操作的更多相关文章
- matlab文件操作及读txt文件(fopen,fseek,fread,fclose)
文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件.MATLAB提供了一系列低层输入输出函数,专门用于文件操作. 1.文件的打开与关闭 1)打开文件 在读写文件之前,必须先用f ...
- Matlab文件操作
1. Matlab文件操作主要有三个步骤:首先打开文件,然后对文件进行读写操作,最后要关闭文件. 2. fid=fopen(文件名,打开方式) 'r' 只读,文件必须存在(缺省的打开方式) 'w' ...
- MATLAB文件操作及读txt文件
转自:http://blog.csdn.net/vblittleboy/article/details/8049748 文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件.MA ...
- Visual Studio 控制台应用程序 同时使用OpenCV和matlab mat文件操作
matalb具有灵活的图像处理,代码编写起来简洁而高效.而OpenCV具有很多成熟的计算机视觉算法,能够处理很多实时的识别处理等问题,而且代码运行起来效率很高.所以如何结合两者之间的优点,是让很多学术 ...
- matlab 中txt文件(含字符及数值)处理
matlab 中txt文件(含字符及数值)处理 (2008-08-02 09:45:12) 转载▼ 标签: 杂谈 分类: matlab及C学习 Matlab文件操作及读txt文件ZZ 2008-07- ...
- MAT文件操作
o李YZo 原文 MAT文件打开方法汇总及其他操作 MAT文件简介 为MATLAB使用的一种特有的二进制数据文件.MAT文件可以包含一个或者多个MATLAB 变量.MATLAB通常采用MAT文件把工作 ...
- C# 文件操作类大全
C# 文件操作类大全 时间:2015-01-31 16:04:20 阅读:1724 评论:0 收藏:0 [点我收藏+] 标签: 1.创建文件夹 //usin ...
- C语言之文件操作08——总结
C程序的文件操作共涵盖7个例题,包括格式打印,文件读取,条件查找,矩阵的文件操作,数据格式输入及调用计算等内容. 文件操作使得程序有更强的拓展性,使其能够单独保存数据.这为程序的调试和优化打下了坚实的 ...
- 【转】C++调用Matlab的.m文件
原文地址 Matlab是一个强大的数学计算/仿真工 具,其内置了很多实用的现成的函数,而且我们经常也自己定义很多m函数.但在很多情况下,我们不得不使用VC编程.那么,如何在VC中利用matla ...
随机推荐
- ReSharper 配置及用法
1:安装后,Resharper会用他自己的英文智能提示,替换掉 vs2010的智能提示,所以我们要换回到vs2010的智能提示 2:快捷键.是使用vs2010的快捷键还是使用 Resharper的快捷 ...
- 查找树ADT——二叉搜索树
在以下讨论中,虽然任意复杂的关键字都是允许的,但为了简单起见,假设它们都是整数,并且所有的关键字是互异的. 总概 使二叉树成为二叉查找树的性质是,对于树中的每个节点X,它的左子树中所有关键字值小于 ...
- HDU 5167(map + 暴力)
题意:给出一个数n,问n能否是斐波那契数列中数的乘积 先刷选 斐波那契数列,然后就枚举 #include <cstdio> #include <cstring> #includ ...
- Unity3D 搭建优雅的UI框架
为什么要使用UI框架?直接使用NGUI或UGUI一拖一拉直接搭载出界面不就行了? 我相信很多小白,包括我在刚学习Unity3D UI的时候都这样想过. 我的第一款款Unity2D游戏<山地赛车& ...
- Swift 3.0 【Swift 3.0 相较于 Swift 2.2 的变化】
一.编译器和语法变化 函数或方法参数 调用函数或方法时从第一个参数开始就必须指定参数名 在Swift的历史版本中出现过在调用函数时不需要指定任何函数参数(或者从第二个参数开始指定参数名),在调用方法时 ...
- codevs1021 玛丽卡
题目描述 Description 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们 ...
- 第2月第5天 arc invocation getReturnValue
http://blog.csdn.net/zengconggen/article/details/38024625
- 分布式应用下的Redis单机锁设计与实现
背景 最近写了一个定时任务,期望是同一时间只有一台机器运行即可.因为是应用是在集群环境下跑的,所以需要自己实现类一个简陋的Redis单机锁. 原理 主要是使用了Redis的SET NX特性,成功设置的 ...
- TCP/IP三次握手和HTTP过程
1.TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在"无差别&qu ...
- python接收图片变成缩略图
python图像处理库:Pillow初级教程 Image类 Pillow中最重要的类就是Image,该类存在于同名的模块中.可以通过以下几种方式实例化:从文件中读取图片,处理其他图片得到,或者直接创建 ...