Matlab
文件IO
读写操作常用来保存中间过程中出现的大变量,避免占用内存太多,也可以减少程序运行时间,避免重复进行同一个操作。最常用的读写操作即为load和save语句。利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久的保留下来,扩展名是.mat。MAT文件的生成和装入由save和load命令完成。
常见数据文件的读写函数
文件类型 | 函数 | 说明 |
---|---|---|
文本文件 | csvread | 读取以逗号作为间隔符的文本数据文件 |
文本文件 | csvwrite | 保存数据到文本文件,逗号作为分隔符 |
文本文件 | dimread | 按照指定的间隔符读取文本文件的数据 |
文本文件 | dimwrite | 按照指定的间隔符写入文本文件 |
文本文件 | textread | 按照指定的格式从文本文件中读取数据 |
文本文件 | textscan | 按照指定的格式从文本文件中读取数据 |
Excel表格 | xlsfinfo | 获取文件类型基本信息 |
Excel表格 | xlsread | 读取Excel电子表格文件数据 |
Lotus 1-2-3表格 | wk1read | 从Lotus 1-2-3电子表格中读取数据 |
Lotus 1-2-3表格 | wk2write | 将数据写入Lotus 1-2-3电子表格 |
可读取(load)文件类型
文件类型 | 扩展名 | 说明 |
---|---|---|
声音格式文件 | .wav | Microsoft音频格式文件 |
声音格式文件 | .au | Sum系统音频格式文件 |
电子表格 | .xls | Excel电子表格 |
电子表格 | .wk1 | Lotus 1-2-3电子表格 |
视频格式文件 | .avi | 多媒体文件格式 |
图形图像格式 | .bmp | 各种常用的图形图像格式文件 |
图形图像格式 | .cur | 各种常用的图形图像格式文件 |
图形图像格式 | .gif | 各种常用的图形图像格式文件 |
图形图像格式 | .hdf | 各种常用的图形图像格式文件 |
图形图像格式 | .ico | 各种常用的图形图像格式文件 |
图形图像格式 | .jpg(jpeg) | 各种常用的图形图像格式文件 |
图形图像格式 | .pbm | 各种常用的图形图像格式文件 |
图形图像格式 | .pcx | 各种常用的图形图像格式文件 |
图形图像格式 | .pgm | 各种常用的图形图像格式文件 |
图形图像格式 | .png | 各种常用的图形图像格式文件 |
图形图像格式 | .pnm | 各种常用的图形图像格式文件 |
图形图像格式 | .ppm | 各种常用的图形图像格式文件 |
图形图像格式 | .ras | 各种常用的图形图像格式文件 |
图形图像格式 | .tif(.tiff) | 各种常用的图形图像格式文件 |
图形图像格式 | .xwd | 各种常用的图形图像格式文件 |
科学数据格式 | .cdf | |
科学数据格式 | .hdf | 这里的hdf格式文件不是图像文件格式 |
科学数据格式 | .fits | |
科学数据格式 | .h5 |
部分数据文件专用load函数
文件类型 | 扩展名 | 函数 | 输出数据格式 |
---|---|---|---|
特殊科学数据格式 | CDF | cdfread | 元胞数组 |
特殊科学数据格式 | FITS | fitsread | 主/副数据表集合 |
特殊科学数据格式 | HDF | hdfread | HDF/HDF-EOS数据 |
图形图像格式 | BMP、JPG、TIFF等 | imread | 色彩数据和灰度/色彩索引数组 |
声音格式文件 | WAV | wavread | 声音数据和采样率 |
声音格式文件 | AU | auread | 声音数据和采样率 |
视频格式文件 | AVI | aviread | MATLAB视频格式文件 |
二进制文件导出函数
文件类型 | 扩展名 | 函数 |
---|---|---|
声音文件 | AU | auwrite |
声音文件 | WAV | wavwrite |
图像文件 | BMP、JPG等 | imwrite |
视频格式文件 | AVI | avifile |
科学数据格式 | CDF | cdfwrite |
科学数据格式 | HDF | 使用图形用户界面导出 |
数据矩阵处理
数据读入后需要经过处理,比较实用的包括数据格式控制、矩阵删除行列、矩阵分割、矩阵转置等操作。
数据格式控制
whos可以观察变量的数据类型
建模过程中学遇到格式不相符导致报错,但数值是相同的,所以需要数据转换格式。
数据类型转换函数:
函数 | 作用 |
---|---|
datestr(d,f) | 将日期数字转换为字符串 |
datenum(str,f) | 将字符串转换为日期数字 |
datevec(str) | 日期字符串转换向量 |
num2str(k) | 将数字转换成字符串 |
int2str(k) | 将整数型转换为字符串 |
mat2str(k) | 将矩阵转换为字符串,供eval使用 |
str2double(S) | 将字符串数组转化为数值数组 |
springf | 将数据格式化为字符串 |
str2num/str2double | 将字符串转换为整形数字 |
... | ... |
矩阵删除行或列
一般删除操作通过冒号表达式将行或列设置为空(即为[])实现,方便快捷。
1 | % 删除行 |
矩阵转置
矩阵转置通过“'”实现
1 | a=[2 1]; |
矩阵分割
一般矩阵分割也是通过冒号表达式选取特定区域的行列将矩阵分割开的。
1 | a=[1 2;3 4]; |
数学公式处理
数学公式处理主要通过符号变量建立表达式,进而计算,主要解决数学公式的运算问题以及一些棘手的计算问题。
主要元素:符号变量
主要形式:符号运算
主要特点:
运算对象可以是没赋值的符号变量
- 可以获得任意精度的解
与数值运算的区别:
- 数值运算中必须先对变量赋值,然后才能参与运算
- 符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达
定义符号变量:
函数sym一次只能定义一个符号变量,使用不方便。MATLAB提供了另一个函数syms,一次可以定义多个符号变量。syms函数的一般调用格式为:
syms 符号变量名1 ...符号变量