一、基础知识
来源:http://crystaldonna.blog.sohu.com/84162722.html

从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种:
ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。ASCII码文件可在屏幕上按字符显示,例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。由于是按字符显示,因此能读懂文件内容。
        二进制文件是按二进制的编码方式来存放文件的。例如,数5678的存储形式为:00010110    00101110 只占二个字节。二进制文件虽然也可在屏幕上显示,但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。因此也把这种文件称作“流式文件”。 
        流可以分为两种类型:文本流和二进制流。文本流是解释性的,最长可达255个字符,其中回车/换行将被转换为换行符“/n”,(如果以"文本"方式打开一个文件,那么在读字符的时候,系统会把所有的"/r /n"序列转成"/n",在写入时把"/n"转成"/r/n" )。二进制流是非解释性的,一次处理一个字符,并且不转换字符。

注:

/n一般会操作系统被翻译成"行的结束",即LF(Line-Feed)
       /r会被翻译成"回车",即CR(Cariage-Return)
       对于文本文件的新行,在UNIX上,一般用/n(LF)来表示,Mac上用/r(CR)来表示,
       Windows上是用/n/r(CR-LF)来表示。

在 matlab 中存储成为二进制还是文本文件取决于fopen的方式,如果用wt,则存储为文本文件,这样用记事本打开就可以正常显示了;如果用w则存储为二进制文件,这样用记事本打开会出现小黑方块,要正常显示的话,可以用写字板或UltraEdit等工具打开。

二、在matlab中读取二进制文件
来源:http://blog.sina.com.cn/s/blog_4a0e9d52010091se.html

   初学matlab时,总会遇到读取二进制数据的问题,下面给出了解决办法.
matlab可以直接读取二进制数据文件,并且可以将其加入到矩阵中。如果对c语言十分熟悉的话,应该对fopen,fclose,ftell, fseek,fread,fwrite,feof这些函数非常熟悉了,幸运的是在matlab中仍然可以使用这些函数来读入实验数据。
   现在假定有一个数据文件叫data.dat,它的前面2k是存放参数的,我们做数据处理的时候需要跳过去,后面的数据是16位整数类型的,每组数据有512个。现在要把该数据文件的所有数据读入一个nx512的矩阵中,n的个数不定,根据数据文件中的数据而定。
用.m脚本的方式编写如下:
% deal data from specified data file
clear ;
data_fname = 'data.dat' ; % 这里是文件名
jump_distance = 2048 ;    % 这里是跳过的字节数
% 打开方式为二进制打开,其实'r'就行,matlab是默认二进制形式打开文件的
file_id = fopen(data_fname, 'rb');
% 从文件开始跳过jump_distance个字节
fseek(file_id, jump_distance, 'bof');
% 先手工构造一个1x512大小的矩阵
raw_data = [1:1:512] ;
while feof(file_id) == 0
    % 这就是大名顶顶的fread了,数据类型是int16,每次读入512个数
    % raw_array每次都是512x1的矩阵,ele_count为读入的数的个数(正常情况下应为512)
    [row_array, ele_count] = fread(file_id, 512, 'int16') ;
    if ele_count < 512 % elecount < 512代表数据不够,已经到了文件的结尾
        break ;
    else
        % 将512x1的row_array转置一下,变为1x512的矩阵
        row_array = row_array'  ;
        % 然后,将row_array追加到raw_data中
        raw_data = [raw_data; row_array] ;
    end
end
% get off the first line [1:1:512]
% 这里就是要把raw_data的第一行数据手工构造的那行数据给去掉,剩下的就都是文件中的数据了
raw_data(1,:)=[] ;
% 关闭文件
fclose(file_id);
% delete other usless vars
% 这里是把用过的变量都删除掉,免得workspace里面乱七八糟的什么都有,这是个好习惯,呵呵。
clear data_fname jump_distance file_id fid ele_count i m n row_array ans;

在matlab中读取二进制文件相关推荐

  1. 如何matlab导入邻接矩阵,“excel如何做矩阵“matlab中读取excle中的邻接矩阵

    怎么在excel中使用矩阵函数 在excel中使用矩阵: 1.矩阵乘法运算择G3:H4,公式:=MMULT(A3:B4,D3:E4) 按Ctrl Shift Enter键,即输组公式. 2.阵的逆矩阵 ...

  2. matlab 十六进制数组,【MATLAB】MATLAB中读取二进制数据文件并加入到矩阵中

    MATLAB中读取二进制数据文件并加入到矩阵中的应用如下: 如果对c语言十分熟悉的话,应该对fopen,fclose,ftell,fseek,fread,fwrite,feof 这些函数非常熟悉了,在 ...

  3. Matlab中读取excel表格数据

    一:Matlab中读取excel表格数据步骤讲解: 第二步:  第三步:  第四步:  第五步:  第六步    第七步:  输入之后按回车键,就会出现相应的波形: 效果图:

  4. matlab中如何读写txt,Matlab中读取txt文件的几种方法

    Matlab中读取txt文件的几种方法 matlab读取文本文件的几种函数: 1.load--适合读取纯数据文本: 2.importdata--只读取数据,自动省略数据格式前后的字符,超大文件不适合: ...

  5. MATLAB中读取网络照片

    MATLAB中读取网络照片很简单,和读取本地照片方法基本一致. 以读取我最最爱的明星郭静为例: url='http://pic.baike.soso.com/p/20130709/2013070914 ...

  6. matlab中读取txt数据文件(txt文本文档)

    根据txt文档不同种类介绍不同的读取数据方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如test.txt文件,内容为 17.901 -1.111 ...

  7. 在MATLAB中读取同一路径下多个txt或mat文件

    1.matlab中给我们提供了dir这个函数,十分方便.这里是读取所有txt文件,所以是dir('父目录路径\*.txt'),读取其它格式文件一样,如读取该路径下的所有png图像文件,则为dir('父 ...

  8. matlab怎么读txt文件字符串,Matlab中读取txt文件的几种方法

    一.纯数据文件(没有字母和中文,纯数字) a=importdata('*.txt');%%%*为所存的文件名 a1=a.data;%%%文件中的数字 a2=a.textdata;%%%文件中的非数字 ...

  9. matlab如何读取.mat文件,matlab中读取mat文件

    Matlab 训练好的 BP 神经网络如何保存和读取方法 附实例说 (明)看到论坛里很多朋友都在提问如何存储和调用已经训练好的神经网络. 本人前几天也遇到了这样的问题,...... 2. 2 HDF ...

  10. matlab用ls显示目录,matlab中读取某个文件夹下所有数据文件

    tearful (pingr)于2009年09月14日16:57:15 星期一)提到: 现在有个文件夹data中的数据想要批量处理,而data中有多个子文件夹,名字分别为0100 1,01002,-, ...

最新文章

  1. 不称职Leader的10个特征,看看你中几条?
  2. Linux中文件操作
  3. b插到元素a之前python_python之路_前端基础之jQuery入门3
  4. 自行实现高性能MVC
  5. stm32 IAP + APP ==双剑合一
  6. Hongjin2 软件研发作为一项工程而言
  7. C 语言实例 -求分数数列1/2+2/3+3/5+5/8+...的前n项和
  8. 基于9款CSS3鼠标悬停相册预览特效
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的体育竞赛比赛赛事管理系统
  10. Linux 内核全系更新 3.6.2、3.5.7 等
  11. python判断不等_Python爬取620首虾米歌曲,揭秘五月天为什么狂吸粉?!
  12. 备考新手指南--QA手册
  13. 国有数据要素市场的政策红利,你get 到了吗?
  14. MATLAB获取Excel指定行列数据及删除指定行数据
  15. 电压模块THM30-2421WI
  16. Spring Cloud与Dubbo详细对比
  17. C/C++中的函数参数传递机制 作者:杨宁 发布时间:2000/11/30
  18. 和刘备相关的人(四)
  19. 回归分析中的评价方法
  20. 四年级计算机走进传统节日教案,四年级下册信息技术教案8中国的传统节日 重庆大学版...

热门文章

  1. 【BZOJ】【P3110】【Zjoi2013】【K大数查询】【题解】【整体二分】
  2. [Noi2015]小园丁和老司机
  3. 《2022女程序员人群洞察报告》
  4. dropbox 怎么使用_使用Dropbox API构建自己的Dropbox客户端
  5. opengles加载obj格式3D模型含光照和纹理
  6. verilogVGA显示太极图案
  7. tcga数据下载_TCGA突变数据的下载、整理和可视化
  8. 怎么设置html禁止直接打开,如何禁止网页自动跳转
  9. 豆瓣电影top250爬虫+数据可视化分析
  10. python处理excel数值为文本_使用Python中的xlrd将数字Excel数据读取为文本