文档

FREAD

从二进制文件读取数据

句法

A =的fread(FILEID)
A =的fread(FILEID,SIZEA)
A =的fread(FILEID,SIZEA,精度)
A =的fread(FILEID,SIZEA,精度,跳过)
A =的fread(FILEID,SIZEA,精度,跳过,machinefmt)
[A,COUNT] =的fread(___

描述

一个=的fread(文件标识读取从打开的二进制文件数据到列向量一个并定位在结束文件标记文件指针。二进制文件由文件标识符指示,文件标识。用FOPEN打开文件,并获得文件标识值。当您完成通过调用阅读,关闭文件FCLOSE(FILEID)

一个=的fread(文件标识SIZEA读取的文件数据到一个数组,一个,其尺寸,SIZEA,并将文件指针定位在最后读取的值之后。FREAD填充一个在列的顺序。

一个=的fread(文件标识SIZEA精确所描述的形式和大小解释文件中的值精确。该SIZEA参数可选。

一个=的fread(文件标识SIZEA精确跳跃通过跳过指定的字节或比特的数目跳跃在该文件中读取每个值之后。该SIZEA参数可选。

一个=的fread(文件标识SIZEA精确跳跃machinefmt进一步指定用于读取字节或比特的文件中的顺序。该SIZEA跳跃参数都是可选的。

[一个计数) =从文件中读(___另外返回字符的数目FREAD读入一个。您可以使用此语法与任何以前的语法的输入参数。

例子

全部收缩

写一个九元素矢量到样本文件,nine.bin

FILEID =的fopen('nine.bin''W');的fwrite(FILEID,[1:9]);FCLOSE(FILEID);

读取文件中的所有数据到类的矢量。默认,FREAD每次读取一个文件1字节,解释每个字节为8位无符号整数(UINT8),并返回一个阵列。

FILEID =的fopen('nine.bin');A =的fread(FILEID)
A =9×11 2 3 4 5 6 7 8 9

FREAD返回一个列向量,具有用于在文件中的每个字节的一个元素。

关于查看信息一个

谁是一个
命名大小字节类属性为9x1 72双

关闭该文件。

FCLOSE(FILEID);

创建一个名为文件doubledata.bin含有9双精度值。

FILEID =的fopen('doubledata.bin''W');的fwrite(FILEID,魔术(3),'双');FCLOSE(FILEID);

打开文件,doubledata.bin和读出的文件中的数据转换成一个3×3阵列,一个。指定源数据是类

FILEID =的fopen('doubledata.bin');A =的fread(FILEID,[3 3],'双'
A =3×38 1 6 3 5 7 4 9 2

关闭该文件。

FCLOSE(FILEID);

阅读文件的内容,fread.m。移调输出数组,一个所以,这是一个行向量。

FILEID =的fopen('fread.m');A =的fread(FILEID,“*字符”)';FCLOSE(FILEID);

FREAD返回字符阵列,一个

创建一个名为文件nine.bin,含有1的值到9写入的数据作为uint16值。

FILEID =的fopen('nine.bin''W');的fwrite(FILEID,[1:9],'UINT16');FCLOSE(FILEID);

读前六个值成3×2阵列。指定源数据是类uint16

FILEID =的fopen('nine.bin');A =的fread(FILEID,[3,2],'UINT16'
A =3×21 4 2 5 3 6

FREAD返回填充列方向与从该文件的前六个值的阵列,nine.bin

返回文件的开头。

frewind(FILEID)

一次读取两个值,在读取下一个值之前跳过一个值。属性指定此格式精确值,'2 * UINT16'。由于数据类uint16中,一个值是由2个字节表示。因此,指定跳跃参数作为2

精度='2 * UINT16';跳过= 2;B =的fread(FILEID,[2,3],精度,跳过)
B =2×31 4 7 2 5 8

FREAD返回一个2×3阵列填充逐列与来自值nine.bin

关闭该文件。

FCLOSE(FILEID);

创建二进制编码的十进制(BCD)值的文件。

海峡= ['AB';'光盘';'EF';'F A']。FILEID =的fopen('bcd.bin''W');的fwrite(FILEID,HEX2DEC(STR),'ubit8');FCLOSE(FILEID);

一次读取1个字节。

FILEID =的fopen('bcd.bin');onebyte =的fread(FILEID,4,'* ubit8');

显示BCD值。

DISP(DEC2HEX(onebyte))
AB CD EF英足总

使用返回到文件的开头frewind。如果你在一个小端系统上的时间读4位,搜索结果将显示在错误的顺序。

frewind(FILEID)ERR =的fread(FILEID,8,'* ubit4');DISP(DEC2HEX(ERR))
B A d全称êA F

使用返回到文件的开头frewind。读取数据的4位在时间和以前一样,但指定大端排序,以显示正确的结果。

frewind(FILEID)正确=的fread(FILEID,8,'* ubit4''IEEE-是');DISP(DEC2HEX(正确))
A B C dêF F甲

关闭该文件。

FCLOSE(FILEID);

输入参数

全部收缩

打开的二进制文件的文件标识符,指定为整数。以前读文件,FREAD,您必须使用FOPEN打开文件,并获得文件标识

数据类型:

输出阵列的尺寸,一个,指定为的整数,或两元件行向量。

形成的SIZEA输入 输出阵列的尺寸,一个
列向量,用含有文件中的一个值的每个元素。
ñ 与列向量ñ元素。
[M,N] ——- - - - - -ñ基质,填充在列的顺序。ñ不能。

在值的位类和大小,以读,指定为字符向量或以下列形式之一的字符串标量。可选地,所述输入指定类的输出矩阵的,一个

形成的精确输入 描述
资源 输入值是由指定的类的资源。输出矩阵一个是一流的
例子:“int16”
资源= >产量 输入值是由指定的类的资源。类输出矩阵的,一个中,通过指定产量
例子:'INT8 =>符'
*资源 输入值和输出矩阵,一个,是由指定的类的资源。对于ñ要么UBITñ精度,输出具有可包含输入最小的类。
例子:'* ubit18'
这相当于'ubit18 => UINT32'

ñ*资源要么
ñ*资源= >产量

ñ跳过由指定的字节数前值跳跃论点。
例子:“4 * int8”

下表列出了可能的值。资源产量

值类型 精确 位(字节)

整数,无符号

'UINT'

32(4)

'UINT8'

8 (1)

'UINT16'

16(2)

“uint32”

32(4)

'UINT64'

64 (8)

“uchar”

8 (1)

'无符号的字符'

8 (1)

“ushort”

16(2)

'ULONG'

32(4)

“UBITñ

1ñ64

整数,签署

“诠释”

32(4)

“int8”

8 (1)

“int16”

16(2)

'INT32'

32(4)

'的Int64'

64 (8)

'整数* 1'

8 (1)

'整数* 2'

16(2)

'整数* 4'

32(4)

'整数* 8'

64 (8)

'SCHAR'

8 (1)

“符号字符”

8 (1)

'短'

16(2)

'长'

32(4)

“一点ñ

1ñ64

浮点数字

'单'

32(4)

'双'

64 (8)

“浮”

32(4)

'FLOAT32'

32(4)

'float64'

64 (8)

'真正的* 4'

32(4)

“真正的* 8”

64 (8)

字符

'字符* 1'

8 (1)

“字符”

取决于与文件相关联的编码方案。集编码与FOPEN

对于大多数值资源如果FREAD在读取完整值之前到达文件的末尾,它不会返回最终值的结果。然而,如果资源ñ要么UBITñ, 然后FREAD返回的最终值的局部结果。

注意

保存为NaN在MATLAB值®,一流的读取和写入数据要么

数据类型:字符|

的字节数读取每个值,指定为一个标量之后跳过。如果指定了精确ñ要么UBITñ,指定跳跃在碎片。

使用跳跃参数读取来自于固定长度的记录不连续的字段中的数据。

对于读取顺序字节的文件中,指定为字符向量或字符串标量。指定machinefmt如在下面的表中的一个值。对于ñUBITñ精度,machinefmt指定了字节中读取数据时的顺序,但对于读取字节顺序保持你的系统字节顺序。

“n”要么“天然”

您的系统字节排序(默认)

'B'要么'IEEE-是'

大端排序

“l”要么“IEEE乐”

小端排序

'S'要么'IEEE-be.l64'

大端排序,64位长的数据类型

'一个'要么'IEEE-le.l64'

Little-endian排序,64位长数据类型

默认情况下,所有目前支持的平台上使用新文件小端排序。万博1manbetx现有的二进制文件可以使用大端或小端排序。

数据类型:字符|

输出参数

全部收缩

文件数据,返回的列向量。如果您指定的SIZEA参数,那么一个是指定的尺寸的矩阵。数据一个是一流的除非你指定在一个不同的类精确论点。

字符数读,返回一个标量值。

扩展功能

R2006a前推出

是这个主题有帮助吗?