MATLAB基础及应用概述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、MATLAB基础
MATLAB® 是一种用于算法开发、数据可视化、数据分析以及数值计算的科学计算
语言和编程环境。
Matlab变量
◆基本运算
变量
逗号、分号的意义
行内编辑、注释、运算规则
◆变量要求
变量区分字母的大小写
名字不能超过31个字符
变量必须以字母开头,之后可以是任意字母、数字或者下滑线
变量中不能含有标点符号。
特殊变量
◆MATLAB语言中数值有多种显示形式,在缺省情况下,若数据为整数,则
就以整数表示;若数据为实数,则以保留小数点后4位的精度近似表示。
MATLAB 语言提供了10种数据显示格式,常用的有下述几种格式:
◆short 小数点后4位(系统默认值)
◆long 小数点后14位
◆short e 5位指数形式
◆long e 15位指数形式
矩阵的生成
◆直接输入法
输入矩阵时要以“[ ]”为其标识符号,矩阵的所有元素必须都在括号内。
矩阵同行元素之间由空格或逗号分隔,行与行之间用分号分隔。
矩阵大小不需要预先定义。
矩阵元素可以是运算表达式。
若“[ ]”中无元素表示空矩阵。
A=[1 2 3;4 5 6;7 8 9]
◆外部文件读入法
load data1.txt
a=xlsread('1.xls')
start->matlab->import wizard
◆特殊矩阵的生成
◆对于一些比较特殊的矩阵(单位阵、矩阵中含1或0较多),由于其具有特殊的结构,MATLAB提供了一些函数用于生成这些矩阵。
常用的有下面几个:
◆zeros(m) 生成m阶全0矩阵
◆eye(m) 生成m阶单位矩阵
◆ones(m) 生成m阶全1矩阵
◆rand(m) 生成m阶均匀分布的随机阵
◆randn(m) 生成m阶正态分布的随机矩阵
◆linspace(x1,x2,n)生成线性等分向量
矩阵操作
矩阵下标
◆MATLAB通过确认下标,可以对矩阵进行插入子块、提取子块和重排子块的操作。
◆为了提取矩阵a的第n行、第m列的元素值,使用a(n,m)可以得到。
同样,将矩阵a的第n行、第m列的元素值赋为r,使用a(n,m)=r这样的命令。
需要注意的是,如果在提取矩阵值时,行或列的值大于矩阵的大小,则出错;而在矩阵赋值时,如果行或者列超出矩阵的大小,则MATLAB自动扩充矩阵的规模,使得可以赋值,扩充部分以零填充。
◆A(:,:)
字符串
◆在MATLAB中,字符串和字符数组基本上是等价的;所有的字符串都用单引号进行输入或赋值(当然也可以用函数char来生成)。
字符串的每个字符(包括空格)都是字符数组的一个元素。
◆s=’matrix laboratory’
◆size(s)
文件管理功能
◆who(whos)
◆cd(chdir,pwd)
◆dir(ls)
◆type
◆what
◆which
◆clc
◆edit
◆!
◆echo
◆load
◆clear/pack
◆save
◆diary
二、MATLAB数值运算
矩阵运算
◆矩阵的转置
用符号’来表示和实现
◆矩阵的四则运算
+ - * / \ (满足数学规则要求)
点乘:.* 右除:./ 左除:.\
◆矩阵的乘方
^矩阵乘方
.^元素对元素的乘方
基本函数运算
◆矩阵的函数运算是矩阵运算中最实用的部分,常用的主要有以下几个:
◆det(a) 求矩阵a的行列式a=[9 5 8;1 1 2; 3 2 1]
◆eig(a) 求矩阵a的特征值A=[-1 1 0;-4 3 0;1 0 2]
◆inv(a)或a ^ (-1) 求矩阵a的逆矩阵a=[1 3 -2;-1 2 4;502 497 -490]
◆rank(a) 求矩阵a的秩a=[3 1 0 2; 1 -1 2 -1;1 3 -4 4]
◆trace(a) 求矩阵a的迹(对角线元素之和)
◆size(a) 求矩阵的行数和列数
几个特殊的运算符
◆冒号:
◆分号;命令行后加“;”表示该命令执行但不显示执行结果。
◆逗号,
◆圆括号()
◆方括号[ ]
◆大括号{}
◆三点...
◆%
◆=
矩阵函数
关系和逻辑运算
1 关系操作符
◆MATLAB常用的关系操作符有:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、= =(等于)、~=(不等于)。
◆MATLAB的关系操作符可以用来比较两个大小相同的数组,或者比较一个数组和一个标量。
在与标量比较时,结果和数组大小一样。
a=1:9;
b=a>4
2 逻辑操作符
◆逻辑操作符定义了一种与或非的关系表达式。
MATLAB的逻辑操作符有
&(与)、|(或)、~(非)。
例如:
c=~(a>4)
c=(a>4)&(a<7)
字符串处理
◆eval(string) 作为一个MATLAB 命令求字符串的值
◆blanks(n) 返回一个n 个零或空格的字符串
◆deblank 去掉字符串中后拖的空格
◆feval 求由字符串给定的函数值
◆findstr 从一个字符串内找出字符串
◆isletter 字母存在时返回真值
◆isspace 空格字符存在时返回真值
◆isstr 输入是一个字符串,返回真值
◆lasterr 返回上一个所产生MATLAB 错误的字符串
◆strcmp 字符串相同,返回真值
◆strrep 用一个字符串替换另一个字符串
◆strtok 在一个字符串里找出第一个标记
类型转换
◆x=[77 65 84 76 65 66]; char(x)
◆int2str 四舍五入为整数转换为字符串
◆num2str 将数字转换为字符串
◆mat2str 将矩阵的数据转换为字符串
◆str2num
多项式及其运算
◆求多项式的根
p=[5 4 3 2 1]
roots(p)
◆多项式求值
p=[1 -9 26 -24]
y=polyval(p,8)
◆求导
p=[1 3 5]
y=polyder(p)
解方程优化极值
◆找最小值:
◆ f = @(x)x.^3-2*x-5;
◆y=fminbnd(f,0,5);
◆x = fzero(f,2)
三、符号运算(工具箱)
syms x y; 定义符合变量
求导
syms x;
diff(sin(x^2))
syms x t; diff(sin(x*t^2), t)
不定积分
syms x;int(x)
定积分
syms x a b; int(x^2,a,b)
求极限
syms x h;
limit(sin(x)/x)
limit((sin(x + h) - sin(x))/h, h, 0)
四、绘图
◆plot(x,y) 二维
x=0:pi/20:2*pi;
y1=sin(x);
y2=sin(x+pi/2);
plot(x,y1,'r:',x,y2,'+')
◆line(X,Y)
◆title(‘xxxx’) xlabel(‘xxxxx’) ylabel(‘yyy’) grid on (off)
◆axis tight subplot
◆绘图工具栏
◆图形导出存储
◆origin
◆plot3(x,y,z) 三维
t=0:pi/50:8*pi;
x=sin(t);
y=cos(t);
z=t; EX505.M 动画
◆mesh(X,Y,Z,C) 网格曲面305
◆surf(X,Y,Z,C) 阴影曲面308
◆蜗牛
◆污水处理中的图像处理
五、程序设计
◆认识程序编辑窗口
◆顺序结构
◆If-else-end
◆for while break
◆et al
自动控制
◆传递函数
sys=tf(num, den) sys=zpk(z,p,k) ss(a,b,c,d)
h = tf([1 0],[1 2 10]);
◆传递函数的串、并联与反馈
×+ feedback(sys1, sys2, sign) ◆单位阶跃响应
step(sys) ltiview 线性时不变系统工具箱
sys=tf(1.25,[1 1 0]); closys=feedback(sys,1);
step(closys)
◆性能指标
自己开发程序:超调量,峰值时间,调节时间
◆化简
◆判稳roots(p) p=[1 2 3 4 5]
◆开环零极点图
[p,z]=pzmap(sys)
n1=[.0001 .0218 1.0436 9.3599];
d1=[0.0006 .0268 .6365 6.2711];
sys=tf(n1,d1);
pzmap(sys)
[p,z]=pzmap(sys)
◆系统根轨迹
rlocus(sys) 工具箱rltool (自学)
◆连续系统频率分析
Bode图bode(sys) h1=tf([50],[1 6 5])
bode(h1) Nyquist曲线nyquist(sys) n=[1]; d=[1 1]; s=tf(n,d)
nyquist(s)
六、Simulink仿真基础
◆Simulink 是Matlab里的一个实现动态系统建模、仿真与分析的仿真集成环境软件工
具包,是控制系统计算与仿真最先进与特好的高效工具。
◆开系统仿真:n=[1 7 24 24]; d=[1 25 35 50 24]
其他
◆空调设计中的负荷计算、阻力计算可自行编写程序,一劳永逸
◆自己开发软件。