Contenido principal

fwrite

Escribir datos en un archivo binario

Descripción

fwrite(fileID,A) escribe los elementos del arreglo A como enteros de 8 bits sin signos en un archivo binario en orden de columna. El archivo binario está indicado por el identificador de archivo, fileID. Use fopen para abrir el archivo y obtenga el valor fileID. Cuando termine de escribir, cierre el archivo llamando a fclose(fileID).

ejemplo

fwrite(fileID,A,precision) escribe los valores en A en la forma y tamaño descritos por precision.

ejemplo

fwrite(fileID,A,precision,skip) omite el número de bytes o bits especificado por skip antes de escribir cada valor.

fwrite(fileID,A,precision,skip,machinefmt) especifica de forma adicional el orden de escritura de bytes o bits en el archivo. El argumento skip es opcional.

ejemplo

count = fwrite(___) devuelve el número de elementos de A que fwrite escribe correctamente en el archivo. Puede utilizar esta sintaxis con cualquiera de los argumentos de entrada de las sintaxis anteriores.

Ejemplos

contraer todo

Abra un archivo llamado nine.bin para escribir. Especifique el acceso de escritura usando 'w' cuando llame a fopen.

fileID = fopen('nine.bin','w');

fopen devuelve un identificador de archivo, fileID.

Escriba los enteros del 1 al 9 como enteros de 8 bits sin signos.

fwrite(fileID,[1:9]);

Cierre el archivo.

fclose(fileID);

Abra un archivo llamado magic5.bin para escribir.

fileID = fopen('magic5.bin','w');

Escriba los 25 elementos del cuadrado mágico de 5 por 5. Utilice el argumento precision, 'integer*4', para escribir enteros de 4 bytes.

fwrite(fileID,magic(5),'integer*4');

Cierre el archivo.

fclose(fileID);

Escriba un archivo binario que contenga los elementos del cuadrado mágico de 4 por 4, almacenados como números de punto flotante de doble precisión.

fileID = fopen('magic4.bin','w');
fwrite(fileID,magic(4),'double');
fclose(fileID);

Abra el archivo magic4.bin con acceso de escritura que permita añadir datos al archivo. Especifique el tipo de acceso al archivo, 'a', cuando llame a fopen.

fileID = fopen('magic4.bin','a');

Añada una matriz de ceros de 4 por 4 al archivo. Después, cierre el archivo.

fwrite(fileID,zeros(4),'double');
fclose(fileID);

Escriba números aleatorios de doble precisión en un archivo llamado myfile.bin para su uso en un sistema big-endian. Especifique el valor machinefmt en 'ieee-be' cuando llame a fwrite para indicar el orden big-endian de los bytes.

fileID = fopen('myfile.bin','w');
fwrite(fileID,rand(4),'double','ieee-be');
fclose(fileID);

Argumentos de entrada

contraer todo

Identificador de archivo, especificado como un entero obtenido de fopen, 1 para la salida estándar (la pantalla), o 2 para el error estándar. fwrite no admite la escritura en URL de Internet.

Datos que se desea escribir, especificados como arreglo numérico, de caracteres o de cadenas.

Aunque fwrite admite la escritura de datos de caracteres o cadenas, hacerlo puede provocar un comportamiento inesperado, por lo que no se recomienda.

Si utiliza fwrite para escribir datos de caracteres o cadenas, especifique la codificación de texto cuando llame a fopen para abrir el archivo para lectura o escritura y especifique la precisión como char.

Ejemplo: [1,2,3;4,5,6]

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string
Soporte de números complejos:

Clase y tamaño en bits de los valores que se desea escribir, especificados como uno de los vectores de caracteres o escalares de cadena enumerados en la columna Precisión.

Tipo de valorPrecisiónBits (bytes)

Enteros, sin signo

'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'

1n64

Enteros, con signo

'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'

1n64

Números de punto flotante

'single'

32 (4)

'double'

64 (8)

'float'

32 (4)

'float32'

32 (4)

'float64'

64 (8)

'real*4'

32 (4)

'real*8'

64 (8)

Caracteres

'char*1'

8 (1)

'char'

El tipo char de MATLAB® no tiene un tamaño fijo y el número de bytes depende del esquema de codificación asociado al archivo. Establecer la codificación con fopen.

Si especifica una precisión de bitn o ubitn, fwrite satura todos los valores fuera del rango.

Nota

Para mantener los valores NaN e Inf en MATLAB, lea y escriba datos de la clase double o single.

Número de bytes que desea omitir antes de escribir cada valor, especificado como un escalar. Si especifica precision de bitn o ubitn, especifique skip en bits.

Utilice el argumento skip para insertar datos en campos no contiguos en registros de longitud fija.

Orden para escribir bytes dentro del archivo, especificado como uno de los vectores de caracteres o escalares de cadena de la tabla siguiente. Para las precisiones bitn y ubitn, machinefmt especifica el orden para escribir bits dentro de un byte, pero el orden para escribir bytes sigue siendo el orden de bytes de su sistema.

'n' o 'native'

El orden de bytes de su sistema (predeterminado)

'b' o 'ieee-be'

Orden big-endian

'l' o 'ieee-le'

Orden little-endian

's' o 'ieee-be.l64'

Orden big-endian, tipo de datos largo de 64 bits

'a' o 'ieee-le.l64'

Orden little-endian, tipo de datos largo de 64 bits

De forma predeterminada, todas las plataformas compatibles actuales utilizan el orden little-endian para archivos nuevos. Los archivos binarios ya existentes pueden usar tanto el sistema de orden big-endian como little-endian.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido antes de R2006a

expandir todo