从二进制文件读取数据
A =的fread(FILEID)
A =的fread(FILEID,SIZEA)
A =的fread(FILEID,SIZEA,精度)
A =的fread(FILEID,SIZEA,精度,跳过)
A =的fread(FILEID,SIZEA,精度,跳过,machinefmt)
[A,COUNT] =的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
-输出数组的维正
(默认)|整数|二元素行向量输出阵列的尺寸,一个
,指定为正
的整数,或两元件行向量。
形成的SIZEA 输入 |
输出阵列的尺寸,一个 |
---|---|
正 |
列向量,用含有文件中的一个值的每个元素。 |
|
与列向量ñ 元素。 |
|
米 ——- - - - - -ñ 基质,填充在列的顺序。ñ 可正 但米 不能。 |
精确
-值的类和大小,以读'UINT8 =>双'
(默认)|字符向量或标量串在值的位类和大小,以读,指定为字符向量或以下列形式之一的字符串标量。可选地,所述输入指定类的输出矩阵的,一个
。
形成的精确 输入 |
描述 |
---|---|
资源 |
输入值是由指定的类的资源 。输出矩阵一个 是一流的双 。例子: “int16” |
资源 = >产量 |
输入值是由指定的类的资源 。类输出矩阵的,一个 中,通过指定产量 。例子: 'INT8 =>符' |
* |
输入值和输出矩阵,一个 ,是由指定的类的资源 。对于位 要么UBIT 精度,输出具有可包含输入最小的类。例子: '* ubit18' 这相当于 'ubit18 => UINT32' |
|
读 |
下表列出了可能的值。资源
和产量
。
值类型 | 精确 | 位(字节) |
---|---|---|
整数,无符号 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
整数,签署 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
浮点数字 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
字符 |
|
|
|
取决于与文件相关联的编码方案。集编码与 |
对于大多数值资源
如果FREAD
在读取完整值之前到达文件的末尾,它不会返回最终值的结果。然而,如果资源
是位
要么ñ
UBIT
, 然后ñ
FREAD
返回的最终值的局部结果。
保存为NaN
和正
在MATLAB值®,一流的读取和写入数据双
要么单
。
数据类型:字符
|串
跳跃
-要跳过的字节数的字节数读取每个值,指定为一个标量之后跳过。如果指定了精确
的位
要么ñ
UBIT
,指定ñ
跳跃
在碎片。
使用跳跃
参数读取来自于固定长度的记录不连续的字段中的数据。
machinefmt
-为了读取字节“n”
(默认)|'B'
|“l”
|'S'
|'一个'
|...对于读取顺序字节的文件中,指定为字符向量或字符串标量。指定machinefmt
如在下面的表中的一个值。对于位
和ñ
UBIT
精度,ñ
machinefmt
指定了字节中读取数据时的顺序,但对于读取字节顺序保持你的系统字节顺序。
|
您的系统字节排序(默认) |
|
大端排序 |
|
小端排序 |
|
大端排序,64位长的数据类型 |
|
Little-endian排序,64位长数据类型 |
默认情况下,所有目前支持的平台上使用新文件小端排序。万博1manbetx现有的二进制文件可以使用大端或小端排序。
数据类型:字符
|串
一个
- 文件数据文件数据,返回的列向量。如果您指定的SIZEA
参数,那么一个
是指定的尺寸的矩阵。数据一个
是一流的双
除非你指定在一个不同的类精确
论点。
计数
- 读的字符数字符数读,返回一个标量值。
使用注意事项和限制:
输入参数精确
必须是一个常量。
该资源
和产量
类,精确
指定不能有这些值:'长'
,'ULONG'
,“无符号长”
,“一点
, 要么ñ
““UBIT
。ñ
“
你不能使用machinefmt
输入。
如果资源
要么产量
那精确
指定为C型,例如,int
,则该类型的目标和生产规模必须:
匹配。
直接映射到一个MATLAB型。
该资源
键入精确
指定必须直接映射到在目标硬件为C类型。
如果FREAD
调用读取整个文件,那么所有的数据必须符合可用的代码生成最大阵列英寸
如果SIZEA
不是恒定的或包含一个非限定性元件,则需要动态存储器分配。
代码生成的FREAD
功能对待字符
值资源
要么产量
作为签署8
位整数。之间使用价值0
和127
只要。
所生成的代码不报告文件读取错误。因此,你必须编写自己的文件的读错误处理您的MATLAB代码。在您的错误处理代码,考虑检查的字节数读匹配您请求的字节数。例如:
...N = 100;[瓦尔斯,numRead] =的fread(FID,N,*双的);如果numRead〜= N%更少的元件读取比预期结束...
您单击对应于该MATLAB命令的链接:
在MATLAB命令窗口中输入它运行的命令。Web浏览器不支持MATLAB的命令。万博1manbetx
您还可以选择从下面的列表中的网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。