目录
语法
说明
示例
将 uint8 数据写入二进制文件
将 4 字节整数写入二进制文件
将数据附加到二进制文件
按 Big-Endian 字节排序写入二进制文件
fwrite将数据写入二进制文件。
语法 fwrite(fileID,A)fwrite(fileID,A,precision)fwrite(fileID,A,precision,skip)fwrite(fileID,A,precision,skip,machinefmt)count = fwrite(___) 说明fwrite(fileID,A) 将数组 A 的元素按列顺序以 8 位无符号整数的形式写入一个二进制文件。该二进制文件由文件标识符 fileID 指示。使用 fopen 可打开文件并获取 fileID 值。读取文件后,请调用 fclose(fileID) 来关闭文件。
fwrite(fileID,A,precision) 按照 precision说明的形式和大小写入 A 中的值。
fwrite(fileID,A,precision,skip) 在写入每个值之前跳过skip指定的字节数或位数。
fwrite(fileID,A,precision,skip,machinefmt) 另外还指定将字节或位写入文件的顺序。skip参数为可选参数。
count = fwrite(___) 返回 A 中 fwrite 已成功写入到文件的元素数。您可以将此语法与前面语法中的任何输入参数结合使用。
示例 将 uint8 数据写入二进制文件打开名称为 nine.bin 的文件以便写入。在对 fopen 的调用中使用 'w' 指定写访问权限。
fileID = fopen('nine.bin','w');fopen 返回文件标识符 fileID。将从 1 到 9 的整数以 8 位无符号整数的形式写入。
fwrite(fileID,[1:9]);关闭文件。
fclose(fileID); 将 4 字节整数写入二进制文件打开名称为 magic5.bin 的文件以便写入。
fileID = fopen('magic5.bin','w');写入 5×5 幻方矩阵的 25 个元素。使用 precision 参数 'integer*4' 可以写入 4 字节整数。
fwrite(fileID,magic(5),'integer*4');关闭文件。
fclose(fileID); 将数据附加到二进制文件写入一个包含 4×4 幻方矩阵、以双精度浮点数形式存储元素的二进制文件。
fileID = fopen('magic4.bin','w');fwrite(fileID,magic(4),'double');fclose(fileID);以写访问权限打开文件 magic4.bin,以便向文件追加内容。在 fopen 调用中指定文件访问类型 'a'。
fileID = fopen('magic4.bin','a');将一个由零组成的 4×4 矩阵追加到文件中。然后关闭文件。
fwrite(fileID,zeros(4),'double');fclose(fileID); 按 Big-Endian 字节排序写入二进制文件将随机的双精度数值写入名称为 myfile.bin 的文件,以便在 big-endian 系统上使用。在 fwrite 调用中指定 'ieee-be' 的 machinefmt 值,以便指示 big-endian 字节排序。
fileID = fopen('myfile.bin','w');fwrite(fileID,rand(4),'double','ieee-be');fclose(fileID);文件标识符,指定为从 fopen 获取的整数,1 表示标准输出(屏幕),要写入的值的类和大小(以位为单位),指定为“精度”列中列出的字符向量或字符串标量之一。
值类型精度位(字节)无符号整数
'uint'
32 (4)
'uint8'
8 (1)
'uint16'
16 (2)
'uint32'
32 (4)
'uint64'
64 (8)
'uchar'
8 (1)
'unsigned char'
8 (1)
'ushort'
16 (2)
'ulong'
32 (4)
'ubitn'
1 ≤ n ≤ 64
有符号整数
'int'
32 (4)
'int8'
8 (1)
'int16'
16 (2)
'int32'
32 (4)
'int64'
64 (8)
'integer*1'
8 (1)
'integer*2'
16 (2)
'integer*4'
32 (4)
'integer*8'
64 (8)
'schar'
8 (1)
'signed char'
8 (1)
'short'
16 (2)
'long'
32 (4)
'bitn'
1 ≤ n ≤ 64
浮点数
'single'
32 (4)
'double'
64 (8)
'float'
32 (4)
'float32'
32 (4)
'float64'
64 (8)
'real*4'
32 (4)
'real*8'
64 (8)
字符
'char*1'
8 (1)
'char'
依赖于与文件关联的编码方案。使用fopen设置编码。
如果指定bitn或ubitn的精度,则fwrite会使范围之外的所有值饱和。写入每个值之前要跳过的字节数,指定为标量。如果将precision指定为bitn或 ubitn,以位为单位指定skip。使用 skip 参数将数据插入到固定长度记录的非连续字段中。
在文件中写入字节的顺序,指定为下表中的字符向量或字符串标量之一。对于bitn和ubitn精度,machinefmt会指定字节中位的写入顺序,而字节的写入顺序仍与系统字节顺序相同。
'n' 或 'native'
系统字节排序方式(默认)
'b' 或 'ieee-be'
Big-endian 排序
'l' 或 'ieee-le'
Little-endian 排序
's' 或 'ieee-be.l64'
Big-endian 排序,64 位长数据类型
'a' 或 'ieee-le.l64'
Little-endian 排序,64 位长数据类型
默认情况下,当前支持的所有平台都使用 little-endian 排序方式对新文件进行排序。现有二进制文件可以使用 big-endian 或 little-endian 排序方式。