函数fopen、fprintf、fread的用法
- fopen(filename,permission)函数
- fprintf('permission', name)函数
- fread()函数
fopen(filename,permission)函数
fopen(filename,permission)是个将数据按指定格式读入到matlab中或获取关于打开文件的信息的函数。参数定义:
- filename:将要被打开文件的本地路径;
- permission:指定对打开文件的访问权限类型;
permission是打开方式,默认的打开方式是只读模式。如果以读方式打开,matlab首先搜索工作目录,其次搜索matlab的其他目录,“permission”是打开方式参数,由以下字符串确定:
r 读出w 写入(文件若不存在,自动创建)a 后续写入(文件若不存在,自动创建)r+ 读出和写入(文件应已存在)w+ 重新刷新写入,(文件若不存在,自动创建)a+ 后续写入(文件若不存在,自动创建))w 重新写入,但不自动刷新a 后续写入,但不自动刷新
1 2 | % 读入文本文件 frr = fopen(secrettext, 'r'); % r 读出 |
fprintf(‘permission’, name)函数
fprintf()是个将数据按指定格式写入到文本文件中的函数。参数定义:
permission用来指定数据输出时采用的格式:
- %d 整数
- %e 实数:科学计算法形式
- %f 实数:小数形式
- %g 由系统自动选取上述两种格式之一
- %s 输出字符串
name是要输出数据的数据名
1 | fprintf('m=%d\n',M); % 输出整数型M数据 |
fread()函数
fread():从二进制文件中读取数据。
基本语法:
语法1:
语法2:
参数说明:
- fid:文件标识符;
- size:输出数组的维数;
- N : 读出N个数据,构成列向量。
- inf : 读出fid指向的打开的文件的全部数据。
- [M,N] : 读出N个数据,构成列向量,填入M*N矩阵
- precision:指定要读取数据的类型;
- skip:指定需要调过的字节数,默认为0;
matlab 的
以下precision(精度)将
保证读出具有一致的体积
Matlab | C/Fortran | precision |
---|---|---|
‘char’ | ‘char*l’ | 8 位,字符型 |
‘uchar’ | ‘unsigned char’ | 8 位 |
‘schar’ | ‘signed char’ | 8 位,字符型 |
‘int8’ | ‘integer*1’ | 8 位,整型数 |
‘intl6’ | ‘integer*2’ | 16 位,整型数. |
‘int32’ | ‘integer*4’ | 32 位,整型数. |
‘int64’ | ‘integer*8’ | 64 位,整型数 |
‘uint8’ | ‘integer*l’ | 8 位 |
‘uintl6’ | ‘integer*2’ | 16 位 |
‘uint32’ | ‘integer*4’ | 32 位 |
‘uint64’ | ‘integer*8’ | 64 位 |
‘float32’ | ‘real*4’ | 浮点数, 32 位 |
‘float64’ | ‘real*8’ | 浮点数, 32 位 |
以下precision(精度)将
不保证读出具有一致的体积
Matlab | C/Fortran | precision |
---|---|---|
‘short’ | ‘short’ | 16 位,整型数 |
‘int’ | ‘int’ | 32 位,整型数 |
‘long’ | ‘long’ | 32 (64) 位,整型数 |
‘uShort’ | ‘Unsigned short’ | 16 位 |
‘uint’ | ‘Unsigned int’ | 32 位 |
‘ulong’ | ‘unsigned long’ | 32 (64) 位 |
‘float’ | ‘float’ | 浮点数, 32 位 |
‘double’ | ‘double’ | 浮点数, 64 位 |
以下precision(精度)
规定读出指定的体积n
类型 | 说明 | 范围 |
---|---|---|
‘bitN’ | N位,整型数 | 1<=N<=64 |
‘ubitN’ | N位 | 1<=N<=64 |