MATLAB 帮助中心
本页翻译不是最新的。点击此处可查看最新英文版本。
将数据写入二进制文件
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) 来关闭文件。
fileID
A
fopen
fclose(fileID)
示例
fwrite(fileID,A,precision) 按照 precision 说明的形式和大小写入 A 中的值。
precision
fwrite(fileID,A,precision,skip) 在写入每个值之前跳过 skip 指定的字节数或位数。
skip
fwrite(fileID,A,precision,skip,machinefmt) 另外还指定将字节或位写入文件的顺序。skip 参量为可选参量。
machinefmt
count = fwrite(___) 返回 A 中 fwrite 已成功写入到文件的元素数。您可将此语法与上述语法中的任何输入参量一起使用。
fwrite
全部折叠
打开名称为 nine.bin 的文件以便写入。在对 fopen 的调用中使用 'w' 指定写访问权限。
nine.bin
'w'
fileID = fopen('nine.bin','w');
fopen 返回文件标识符 fileID。
将从 1 到 9 的整数以 8 位无符号整数的形式写入。
fwrite(fileID,[1:9]);
关闭文件。
fclose(fileID);
打开名称为 magic5.bin 的文件以便写入。
magic5.bin
fileID = fopen('magic5.bin','w');
写入 5×5 幻方矩阵的 25 个元素。使用 precision 参量 'integer*4' 可以写入 4 字节整数。
'integer*4'
fwrite(fileID,magic(5),'integer*4');
写入一个包含 4×4 幻方矩阵、以双精度浮点数形式存储元素的二进制文件。
fileID = fopen('magic4.bin','w'); fwrite(fileID,magic(4),'double'); fclose(fileID);
以写访问权限打开文件 magic4.bin,以便向文件追加内容。在 fopen 调用中指定文件访问类型 'a'。
magic4.bin
'a'
fileID = fopen('magic4.bin','a');
将一个由零组成的 4×4 矩阵追加到文件中。然后关闭文件。
fwrite(fileID,zeros(4),'double'); fclose(fileID);
将随机的双精度数值写入名称为 myfile.bin 的文件,以便在 big-endian 系统上使用。在 fwrite 调用中指定 'ieee-be' 的 machinefmt 值,以便指示 big-endian 字节排序。
myfile.bin
'ieee-be'
fileID = fopen('myfile.bin','w'); fwrite(fileID,rand(4),'double','ieee-be'); fclose(fileID);
文件标识符,指定为从 fopen 获取的整数,1 表示标准输出(屏幕),2 表示标准错误。fwrite 不支持写入 Internet URL。
1
2
要写入的数据,指定为数值数组、字符数组或字符串数组。
虽然 fwrite 支持写入字符或字符串数据,但这样做会导致意外行为,因此不推荐这样做。
如果您使用 fwrite 写入字符或字符串数据,请在调用 fopen 打开文件进行读取或写入时指定文本编码,并将精度指定为 char。
char
示例: [1,2,3;4,5,6]
[1,2,3;4,5,6]
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string 复数支持: 是
single
double
int8
int16
int32
int64
uint8
uint16
uint32
uint64
logical
string
'uint8'
要写入的值的类和大小(以位为单位),指定为“精度”列中列出的字符向量或字符串标量之一。
无符号整数
'uint'
32 (4)
8 (1)
'uint16'
16 (2)
'uint32'
'uint64'
64 (8)
'uchar'
'unsigned char'
'ushort'
'ulong'
'ubitn'
n
1 ≤ n ≤ 64
64
有符号整数
'int'
'int8'
'int16'
'int32'
'int64'
'integer*1'
'integer*2'
'integer*8'
'schar'
'signed char'
'short'
'long'
'bitn'
浮点数
'single'
'double'
'float'
'float32'
'float64'
'real*4'
'real*8'
字符
'char*1'
'char'
MATLAB® char 类型不是固定大小,字节数取决于与文件关联的编码方案。使用 fopen 设置编码。
如果指定 bitn 或 ubitn 的精度,则 fwrite 会使范围之外的所有值饱和。
bitn
ubitn
注意
要在 MATLAB 中保留 NaN 和 Inf 值,请读取和写入 double 或 single 类的数据。
NaN
Inf
写入每个值之前要跳过的字节数,指定为标量。如果将 precision 指定为 bitn 或 ubitn,请以位为单位指定 skip。
使用 skip 参量将数据插入到固定长度记录的非连续字段中。
'n'
'b'
'l'
's'
在文件中写入字节的顺序,指定为下表中的字符向量或字符串标量之一。对于 bitn 和 ubitn 精度,machinefmt 会指定字节中位的写入顺序,而字节的写入顺序仍与系统字节顺序相同。
'n' 或 'native'
'native'
系统字节排序方式(默认)
'b' 或 'ieee-be'
Big-endian 排序
'l' 或 'ieee-le'
'ieee-le'
Little-endian 排序
's' 或 'ieee-be.l64'
'ieee-be.l64'
Big-endian 排序,64 位长数据类型
'a' 或 'ieee-le.l64'
'ieee-le.l64'
Little-endian 排序,64 位长数据类型
默认情况下,当前支持的所有平台都使用 little-endian 排序方式对新文件进行排序。现有二进制文件可以使用 big-endian 或 little-endian 排序方式。
全部展开
用法说明和限制:
精度参量必须为常量。
不支持精度类型 'long'、'ulong'、'unsigned long'、'bitn' 和 'ubitn'。
'unsigned long'
不支持机器格式(字节写入顺序)输入参量。
如果精度为 C 类型,例如 int,该类型的目标和生产大小必须:
int
匹配。
直接映射到 MATLAB 整数类型。
将 char 类型视为有符号 8 位整数。只能使用从 0 到 127 之间的值。
追加到文件中并使用 skip 参量时,C 运行时 fseek 必须能够跳过文件末尾进行查找并将未写入的字节初始化为 0。此行为与 POSIX® 和 Windows® 的行为相匹配。
fseek
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
此函数支持基于线程的环境。
fclose | ferror | fopen | fprintf | fread | fscanf | fseek | ftell
fclose
ferror
fprintf
fread
fscanf
ftell
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处