弗里德

读取二进制文件的数据

说明

例子

一个=弗雷德(FILEID)将打开的二进制文件中的数据读入列向量一个并将文件指针放置在文件结束标记处。二进制文件由文件标识符表示,FILEID. 使用福潘打开文件并获取FILEID价值。读完后,通过调用fclose(文件ID).

一个=弗雷德(FILEID,大小)将文件数据读入数组,一个,带尺寸,大小,并在最后一次读取值后定位文件指针。弗里德填充一个按列顺序排列。

例子

一个=弗雷德(FILEID,大小,精度)根据所描述的形式和大小解释值的文件中精度.这个大小参数是可选的。

例子

一个=弗雷德(FILEID,大小,精度,跳过)跳过由跳过在读取文件中的每个值之后。这个大小参数是可选的。

例子

一个=弗雷德(FILEID,大小,精度,跳过,机械加工)另外指定读取文件中字节或位的顺序。这个大小跳过参数是可选的。

[一个,计数]=弗雷德(___)另外返回弗里德读入一个. 您可以将此语法与以前语法的任何输入参数一起使用。

实例

全部折叠

将九元素向量写入示例文件,九个箱子.

文件ID=fopen('九个箱子',“w”);fwrite(fileID,[1:9]);fclose(fileID);

将文件中的所有数据读入一个类向量双重的. 默认情况下,弗里德一次读取1个字节的文件,将每个字节解释为8位无符号整数(单位8),并返回双重的阵列。

文件ID=fopen('九个箱子');A=fread(文件ID)
一个=9×1个1 2 3 4 5 6 7 8 9

弗里德返回一个列向量,文件中每个字节有一个元素。

查看有关的信息一个.

一个
名称大小字节类属性的9X1 72双

关闭文件。

fclose(文件id);

创建名为双数据.bin,包含九个双精度值。

文件ID=fopen('双数据.bin',“w”);fwrite(文件ID,魔法(3),'双');fclose(文件ID);

打开文件,双数据.bin,并将文件中的数据读入3×3数组,一个. 指定源数据是类双重的.

文件ID=fopen('双数据.bin');A=fread(文件ID,[3 3],'双')
一个=3×3个8 1 6 3 5 7 4 9 2

关闭文件。

fclose(文件id);

创建名为九个箱子,包含从1到9的值。将数据写入为uint16标准价值观。

文件ID=fopen('九个箱子',“w”);fwrite(文件ID,[1:9],'uint16');fclose(文件ID);

将前六个值读入3乘2数组。指定源数据是类uint16标准.

文件ID=fopen('九个箱子');A=fread(文件ID,[3,2],'uint16')
一个=3×2个1 4 2 5 3 6

弗里德返回一个按列填充的数组,其中包含文件中的前六个值,九个箱子.

返回到文件的开头。

frewind(文件ID)

一次读取两个值,并读取下一个值之前跳过一个值。使用指定格式精度价值,'2*uint16'. 因为数据是类uint16标准,一个值由2个字节表示。因此,请指定跳过参数为2个.

精密度='2*uint16';skip=2;B=fread(文件ID,[2,3],精度,skip)
B =2×3个1 4 7 2 5 8年

弗里德返回按列填充的2乘3数组,其值来自九个箱子.

关闭文件。

fclose(文件id);

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

强度=[“AB”;'光盘';'EF';'FA'];文件ID=fopen('密件抄送箱',“w”);fwrite(文件标识,hex2dec(str),'ubit8');fclose(文件ID);

一次读取1个字节。

文件ID=fopen('密件抄送箱');onebyte=fread(文件ID,4,'*ubit8');

显示BCD值。

显示(dec2hex(单字节))
AB、CD、EF、FA

使用返回到文件的开头弗雷温德. 如果你一次在一个小的尾数系统上读4位,你的结果就会出现错误的顺序。

frewind(fileID)err=fread(fileID,8,'*ubit4');显示(dec2hex(err))
B A D C F E A F

使用返回到文件的开头弗雷温德. 像以前一样一次读取4位数据,但是指定一个大端顺序以显示正确的结果。

frewind(fileID)correct=fread(fileID,8,'*ubit4',“电气与电子工程师协会”);显示(dec2hex(正确))
A、B、C、D、F、F、A

关闭文件。

fclose(文件id);

输入参数

全部折叠

打开的二进制文件的文件标识符,指定为整数。在读取文件之前弗里德,必须使用福潘打开文件并获取FILEID.

数据类型:双重的

输出数组的维数,一个,指定为天道酬勤,整数或两元素行向量。

形式大小输入 输出数组的维数,一个
天道酬勤 列向量,每个元素在文件中都包含一个值。
n个 列向量n个元素。
[男,女] -由-n个矩阵,按列顺序填写。n个可以是天道酬勤,但是不能。

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

形式精度输入 说明
来源 输入值属于来源. 输出矩阵一个是类双重的.
例子:'INT16'
来源=>输出 输入值属于来源. 输出矩阵的类,一个,由指定输出.
例子:'int8=>字符'
*来源 输入值和输出矩阵,一个,属于来源. 为了一点n个育碧n个精度,输出具有可包含输入的最小类。
例子:'*ubit18'
这相当于'ubit18=>uint32'

N个*来源
N个*来源=>输出

阅读N个在跳过由跳过论点。
例子:'4 * INT8'

下表显示了来源输出.

值类型 精密度 位(字节)

整数,无符号

'单位'

32(四)

'uint8'

八(一)

'uint16'

16(二)

'UINT32'

32(四)

'uint64'

64(8)

“乌查尔”

八(一)

'无符号字符'

八(一)

'ushort'

16(二)

“乌龙”

32(四)

“育碧n个'

1个n个64个

整数,有符号

'内景'

32(四)

'INT8'

八(一)

'INT16'

16(二)

'国际32'

32(四)

'int64'

64(8)

'整数*1'

八(一)

'整数*2'

16(二)

'整数*4'

32(四)

'整数*8'

64(8)

“沙尔”

八(一)

'签名字符'

八(一)

'短'

16(二)

“长”

32(四)

“位n个'

1个n个64个

浮点数

'单身'

32(四)

'双'

64(8)

'浮动'

32(四)

'浮动32'

32(四)

'浮动64'

64(8)

'真的*4'

32(四)

'真的*8'

64(8)

人物

'字符*1'

八(一)

“字符”

MATLAB®烧焦类型不是固定大小,字节数取决于与文件关联的编码方案。设置编码方式福潘.

对于大多数值来源,如果弗里德在读取完整值之前到达文件末尾,它不会返回最终值的结果。但是,如果来源一点n个育碧n个,然后弗里德返回最终值的部分结果。

注意

保存天道酬勤MATLAB中的值,类的读写数据双重的单一的.

数据类型:烧焦|一串

读取每个值后要跳过的字节数,指定为标量。如果指定精度属于一点n个育碧n个,指定跳过一点点。

使用跳过用于从固定长度记录中的非连续字段读取数据的参数。

读取文件中字节的顺序,指定为字符向量或字符串标量。指定机械加工作为下表中的值之一。为了一点n个育碧n个精密度,机械加工指定读取字节内位的顺序,但读取字节的顺序仍为系统字节顺序。

'N''本地'

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

“b”“电气与电子工程师协会”

大端序

'L''ieee乐'

小端序

“的”'ieee be.l64'

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

“一”'ieee le.l64'

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

默认情况下,当前支持的所有平台都对新文件使用小尾数顺金宝app序。现有的二进制文件可以使用big-endian或little-endian顺序。

数据类型:烧焦|一串

输出参数

全部折叠

文件数据,作为列向量返回。如果您指定大小那么,争论一个是指定大小的矩阵。数据输入一个是类双重的除非您在精度论点。

读取的字符数,作为标量值返回。

扩展功能

在R2006a之前引入