Matlab学习:文本(txt)文件、二进制文件数据、图像文件、其他文件的读取(未全部完成,待补充)

Matlab学习:文本(以.txt为例)文件、二进制文件数据、图像(以BMP、TIF、GIF、JPEG等图像为例)文件、其他文件(以RAW、.dat为例)的读取

1、读取 .txt 文件数据

情况A. 一个txt文件里全是数字数据的读取

例如sj.txt文件内容为:

1 21 31 41
2 52 62 74
3 33 35 37
4 81 82 83
5 55 66 77
方法1.maltab自带工具

首先先将数据导入至matlab自带的工具中
在这里插入图片描述导入后会出现导入后的各个参数,
分隔符根据实际情况进行选择,一般是空格或者逗号
最后点击导入所选内容即可。
在这里插入图片描述

方法2. load、dlmread、importdata函数

代码示例:

%%文件路径
Path='路径\'
filename=[Path ,'data.txt'];
%%读取文件数据
data1=load(filename);
data2=dlmread(filename);
data3=importdata(filename);

情况B.在情况A的基础上存在第一行数据为中文

例如sj2.txt文件内容为:

编号 长 宽 高
1 21 31 41
2 52 62 74
3 33 35 37
4 81 82 83
5 55 66 77

分析内容:这里的文件内容,存在了一行中文汉字,load函数将不再适用,这里我们需要分为两个部分处理:1、中文处理;2、数字处理。
参考函数:textread importdata

方法1.textread函数
data=textread('sj2.txt','%s');	%读取文件
data=str2num(char(data(5:end)));	%删除中文,并将cell转换成数字
data=reshape(data,4,length(data)/4)';	%重新按照格式排列
方法2.importdata函数
data=importdata('sj2.txt');	%读取的文字存在struct内,data为数字,textdata为中文
data=data.data;	%提取struct中的data

情况C.读取中文与数字混合文件

例如sj2.txt文件内容为:

编号:1:21:31:41
编号:2:52:62:74
编号:3:33:35:37
编号:4:81:82:83
编号:5:55:66:77

分析内容:这种固定的汉字和变化的数字,以形成汉字和数字混合出现,已经不能简单应用MATLAB自带函数处理,需要根据实际情况进行更加精准的处理。这里使用文件系统函数(fopen等函数)读取文件。
关键函数
fopen 打开文件,返回地址,因为我们只是读取文件,所以用r权限
fscanf 以某种方式读取文件,具体内容具体分析
fscanf(FID,FORMAT,SIZEA) 其中:FID为文件地址(为fopen的返回值),FORMAT为读取txt文件的格式,SIZEA为读取的函数,如:[1 inf] 读取从第一行到最后一行
fclose 关闭文件
注意:这里的三个函数缺一不可(养成良好习惯,打开的文件要关闭)

fid=fopen('sj3.txt','r');	%只读
data=fscanf(fid,'编号:
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值