MATLAB文件的I/O函数操作
save 函数
save 函数将工作区中的变量保存到硬盘上,用 save 命令所形成的文件可以是双精度二进制格式 MAT 文件,也可以是 ASCII 文件。save 函数的语法为:
save
save('filename')
save('filename', 'var1', 'var2', …)
save('filename', '-struct', 's')
save('filename', '-struct', 's', 'f1', 'f2', …)
save(…, 'format')
save filename var1 var2 …
- save 将工作区中的所有变量保存在名为 MATLAB.mat 的二进制格式文件中,该文件可通过 load 命令来重新装入工作区。
- save('filename') 将工作区中的所有变量保存为文件,文件名为 filename.mat。如果 filename 中包含路径,则将文件保存在相应目录下,否则默认路径为当前路径。
- save('filename', 'var1', 'var2' …) 保存指定的变量在文件 filename.mat 中。
- save('filename', '-struct', 's') 保存结构体 s 中全部域作为单独的变量,文件名为 filename.mat。
- save('filename', '-struct', 's', 'f1', 'f2'…) 保存结构体 s 中指定的域 (s.f1,s.f2),文件名为 filename.mat。
- save(…, 'format') 指定文件的保存格式,格式可以为 MAT 文件、ASCII 文件等。
format 可以为以下几种形式。
- -ascii:以 8 位 ASCII 格式保存数据。
- -ascii –double:以 16 位 ASCII 格式保存数据。
- -ascii –tabs:以 8 位 ASCII 格式保存数据,使用 Tab 作分隔符。
- -ascii –double –tabs:以 16 位 ASCII 格式保存数据,使用 Tab 作分隔符。
- -mat:二进制 MAT 格式保存数据(默认格式)。
示例1
save函数的使用,具体程序如下:>> savefile = 'test.mat'; >> p = rand(1, 10); >> q = ones(10); >> save(savefile, 'p', 'q') >> whos -file test.mat Name Size Bytes Class p 1x10 80 double array q 10x10 800 double array Grand total is 110 elements using 880 bytes >> s1.a = 12.7; s1.b = {'abc', [4 5; 6 7]}; s1.c = 'Hello!'; >> save newstruct.mat -struct s1; >> whos -file newstruct.mat Name Size Bytes Class c 1x6 12 char array b 1x2 158 cell array a 1x1 8 double array Grand total is 16 elements using 178 bytes
load 函数
load 函数从磁盘文件中重新调入变量内容到工作区中。load 函数的语法为:
load
load filename
load filename X Y Z…
load -ascii filename
load -mat filename
- load:如果 MATLAB.mat 文件存在,导入 MATLAB.mat 中的所有变量;如果不存在,则返回 error。
- load filename:将 filename.mat 中的全部变量导入到工作区中。
- load filename X Y Z…:将 filename.mat 中的变量 X、Y、Z 等导入到工作区中。
- load -ascii filename:无论输入文件名是否包含有扩展名,将其以 ASCII 格式导入,如果指定的文件不是数字文本,则返回 error。
- load -mat filename:无论输入文件名是否包含有扩展名,将其以 MAT 格式导入,如果指定的文件不是 MAT 文件,则返回 error。
fread 函数
fread 函数从文件中读取二进制数据。fread 函数的语法为:
A = fread(fid)
A = fread(fid, count)
A = fread(fid, count, precision)
A = fread(fid, count, precision, skip)
A = fread(fid, count, precision, skip, machineformat)
[A, count] = fread(…)
参数 count 合法选择如下。
- n:读取 n 个元素到一个列向量。
- inf:读到文件结束,返回一个与文件数据元素相同的列向量。
- [m,n]:读取元素填充一个 m 行 n 列的矩阵,填充按列进行,如果文件读入数据不够,则填充 0。
精度表示读入数据精度的字符串,控制读入数据精度。MATLAB 中精度如下表所示。
精度 | 说明 | 精度 | 说明 |
---|---|---|---|
'uchar' | 无符号字符:8 位 | 'uint16' | 无符号整数:16 位 |
'schar' | 有符号字符:8 位 | 'uint32' | 无符号整数:32 位 |
'int8' | 整数:8 位 | 'uint64' | 无符号整数:64 位 |
'int16' | 整数:16 位 | 'single' | 浮点数:32 位 |
'int32' | 整数:32 位 | 'float32' | 浮点数:32 位 |
'int64' | 整数:64 位 | 'double' | 浮点数:64 位 |
'uint8' | 无符号整数:8 位 | 'float64' | 浮点数:64 位 |
fwrite 函数
fwrite 函数向文件中写入二进制数据。fwrite 函数的语法为:
[count, errmsg] = fwrite(fid, A, precision)
[count, errmsg] = fwrite(fid, A, precision, skip)
fscanf 函数
fscanf 函数按指定的格式从文件中读取数据。fscanf 函数的语法为:
A = fscanf(fid, format)
[A,count] = fscanf(fid, format, size)
fprintf 函数
fprintf 函数向文件中写入格式化数据。fprintf 函数的语法为:count = fprintf(fid, format, A…)
fprintf 函数将矩阵 A 或其他矩阵的实部数据按“格式字符串”指定的形式进行格式化,并将其写入指定的文件 fid 中,count 返回值为写入的数据长度。fgets 函数
fgets 函数以字符串形式返回文件中的下一行内容,包含行结束符。fgets 函数的语法为:
tline = fgets(fid)
tline = fgets(fid, nchar)
fgetl 函数
fgetl 函数以字符串形式返回文件中的下一行内容,但不包含行结束符。fgetl 函数的语法为:tline = fgetl(fid)
fgetl 函数返回文件标识符fid的文件中下一行内容,如果遇到文件结尾,则返回 -1,所返回的字符串中不包含行结束符。ferror 函数
ferror 函数查询 MATLAB 关于文件输入/输出操作的错误。ferror 函数的语法为:message = ferror(fid)
ferror 函数将文件标识符 fid 的已打开文件的错误信息返回给 message 变量。feof 函数
feof 函数测试指定文件是否设置了文件结尾 eof。如果返回 1,表示设置了 eof 指示器;返回 0,则表示未设置 eof 指示器。feof 函数的语法为:
eofstat = feof(fid)
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算