当前位置: 代码迷 >> 综合 >> matlab文件操作fopen,fseek,fread,fclose
  详细解决方案

matlab文件操作fopen,fseek,fread,fclose

热度:80   发布时间:2023-11-11 18:50:41.0

fopen

 

fread

     常见用法:

      1、A=fread(fileID,sizeA,precision,skip,machinefmt) 

      2、A=fread(fileID)

      3、fread(fileID,sizeA)

      4、A=fread(fileID,sizeA,precision)

      5、A=fread(fileID,sizeA,precision,skip)

      6、A=fread(fileID,sizeA,precision,skip)

   重点说明A=fread(fileID,sizeA,precision,skip,machinefmt)中参数具体含义,其余与这个一样

   1、fileID 文件标识

       由fopen()返回

   2、sizeA  输出数组的大小尺寸

      有3种参数,Inf、n、[m,n]

      Inf :输出数组是列向量,文件中每一个元素对应一个值

        n :有n个元素的列向量

    [m,n] 代表按列向量排列的m行n列的矩阵,n可以取Inf,但m不可以

    3、precision   解码类型即需要读取数据的类型和大小,默认'uint8=>double'

       常见有char、int8、int16等,需要根据原始数据格式来确定

    4、skip   循环跳过多少字节即每读一个就间隔skip个precision 类型大小再读,,默认为0

    5、machinefmt 待读取数据字节的排列方式,默认为'n'

         需要根据源数据格式来确定,有'b'、'l'、's'、'a'等格式

         'n'就是系统字节的排列顺序,即‘native’

         'b'就是'ieee-be',即'Big-endian ordering',即低位字节排放在内存的高地址端,高位字节排放在内存的低地址端

          'l'就是‘ieee-le’,即‘Little-endian ordering’即低位字节排放在内存的低地址端,高位字节排放在内存的高地址端

 

 

fseek:

         fseek是读写操作文件位置指针?

status=fseek(fid, offset, origin_pos)

 其中fid为文件句柄,

offset表示位置指针相对origin_pos(即参考位置)移动的字节数,当offset

 > 0    向文件末尾方向移动.

= 0     不改变方向.

< 0     向文件开头方向移动.

origin_pos表示位置指针移动的参照位置,当origin_pos:

'bof' or -1     文件开头

'cof' or 0      文件当前位置

'eof' or 1      文件末尾。

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

 

注意fseek与fread中skip的区别,skip是循环跳读,即每隔skip就读取一个值

??????

  相关解决方案