fread

Purpose

Read binary data from file.

Synopsis

A = fread(fid)
[A,count] = fread(fid,size,'precision')

Description

A = fread(fid) reads binary data from the specified file and writes it into matrix A. fid is an integer file identifier obtained from fopen.

[A,count] = fread(fid,size,'precision') attempts to read size number of elements of the specified precision. count is the number of elements successfully transferred.

The size argument can be

------------------------------------------------------------
n       Reads n elements into a column vector.                
inf     Reads to the end of the file, resulting in a column   
        vector containing the same number of elements as      
        are in the file.                                      
[m,n]   Reads enough elements to fill an m-by-n matrix, fill  
        ing in elements in column order, padding with zeros   
        if the file is too small to fill the matrix.          
------------------------------------------------------------
If size is not specified, Inf is assumed.

The 'precision' argument specifies the numeric precision of the values read. precision controls the number of bits read for each value and the interpretation of those bits as an integer, a floating-point value, or a character. The table on the next page lists the allowable precision strings and their meanings.

Note that if fread reaches the end of the file and the current input stream does not contain enough bits to write out a complete matrix element of the specified precision, fread pads the last byte or element with zero bits until the full value is obtained. If an error occurs, reading is done up to the last full value.

Numeric precisions are hardware specific; they depend on how numbers are represented in the architecture of your specific computer. Although the following table indicates certain common precision values, be aware that these values are not necessarily correct for your system except for 'float32' and 'float64', which have absolute precision values and are not hardware specific, although these values may not be supported on all architectures.

This section assumes that you know the appropriate numeric precision for your hardware. If you are not familiar with the numeric precision for your hardware, refer to the hardware reference manual.

For convenience, MATLAB accepts some C and FORTRAN data type equivalents for the MATLAB precisions listed. If you are a C or FORTRAN programmer, you may find it more convenient to use the names of the data types in the language with which you are most familiar.

----------------------------------------------------------------------
MATLAB      C or FORTRAN       Interpretation                           
----------------------------------------------------------------------
                                                                        
'char'      'char', 'char*1'   Character; 8 bits (signed or unsigned,   
                               depending on the architecture)           
                                                                        
'schar'     'signed char'      Signed character; 8 bits                 
                                                                        
'uchar'     'unsigned char'    Unsigned character (default); 8 bits     
                                                                        
'short'     'short'            Integer; 16 bits                         
                                                                        
'ushort'    'unsigned short'   Unsigned integer; 16 bits                
                                                                        
'int'       'int'              Integer; 16 or 32 bits                   
                                                                        
'uint'      'unsigned int'     Unsigned integer; 16 or 32 bits          
                                                                        
'long'      'long'             Integer; 32 bits                         
                                                                        
'float'     'float'            Floating-point value; 32 bits            
                                                                        
'ulong'     'unsigned long'    Unsigned integer; 32 bits                
                                                                        
'float32'   'real*4'           32-bit floating-point value              
                                                                        
'double'    'double'           Long floating-point value; 64 bits       
                                                                        
'float64'   'real*8'           64-bit floating-point value              
                                                                        
'intN'                         Signed integer, N bits wide              
                                                                        
'uintN'                        Unsigned integer, N bits wide.           
                                                                        
----------------------------------------------------------------------
N represents a value between 1 and 64. In addition, the following specific equivalents prevail:

----------------------------------------
'int8'    'integer*1'   Integer; 8 bits.   
'int16'   'integer*2'   Integer; 16 bits.  
'int32'   'integer*4'   Integer; 32 bits.  
'int64'   'integer*8'   Integer; 64 bits.  
----------------------------------------

See Also

fclose, ferror, fopen, fprintf, fscanf, fseek, ftell, fwrite, sprintf, 
sscanf

(c) Copyright 1994 by The MathWorks, Inc.