0%

数模-Matlab

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
% 删除行
a=[1 2; 3 4];
a(1,:)=[]
% 结果
%a=
%
% 3 4

% 删除列
a=[1 2;3 4];
a(:,1)=[]
% 结果
%a=
% 2
% 4

矩阵转置

矩阵转置通过“'”实现

1
2
3
4
5
6
a=[2 1];
b=a'
% 结果
%b=
% 2
% 1

矩阵分割

一般矩阵分割也是通过冒号表达式选取特定区域的行列将矩阵分割开的。

1
2
3
4
5
6
7
a=[1 2;3 4];
b=a(1,:);
a=a(2,:);
%a=
% 3 4
%b=
% 1 2

数学公式处理

数学公式处理主要通过符号变量建立表达式,进而计算,主要解决数学公式的运算问题以及一些棘手的计算问题。

主要元素:符号变量

主要形式:符号运算

主要特点:

  1. 运算对象可以是没赋值的符号变量

    1. 可以获得任意精度的解

与数值运算的区别:

  1. 数值运算中必须先对变量赋值,然后才能参与运算
  2. 符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达

定义符号变量:

函数sym一次只能定义一个符号变量,使用不方便。MATLAB提供了另一个函数syms,一次可以定义多个符号变量。syms函数的一般调用格式为:

syms 符号变量名1 ...符号变量