Matlab7.0基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
构架数组
数据库编程 中的记录
>> student.name='李四'; >> student.chengji.yuwen='90'; >> student.chengji.shuxue='94'; >> student student = name: '李四' chengji: [1x1 struct]
Baidu Nhomakorabea
符号计算
例1: >> syms fai1 fai2; >> y=simple(sin(fai1)*cos(fai2)cos(fai1)*sin(fai2)); >>y y= sin(fai1-fai2)
符号表达式的操作
例2 按不同的方式对下式合并同幂项。
(x^2+x*exp(-t)+1)*(x+exp(-t))
符号微积分
通用微分指令 df=diff(f,v,n) >>syms x; >> f=x^2+2*x+3; >> n=2; >> df=diff(f,x,n) df = 2 通用积分指令 intf=int(f, v, a, b) 例 求积分 2 x2 x2 y
变量没赋值也可用
c= 1 4 7 d= 1 4 7 e= 1 2
2 5 8 2 5 8
数组运算 针对单个 元素的运 算
c.*d
ans =
1 4
矩阵运算 整体运算
4 5
7 8
16 25 c*e ans = 49 64 5 14 23 14 41 68
行数和列数相同时尤其注意
矩阵和数组运算的异同
数组A.^n 是数组A的 每个元素 求n次幂 矩阵A^n是A 为方阵时 自乘n次
多项式的运算
多项式的表示方法
P( x) a0 xn a1xn 1 ... an 1x an P [a0 a1 ... an ]
多项式乘除
求两个多项式的乘积可由这两个多项式 的系数向量的卷积得到: a(s) s 2 2s 3, b(s) 4s 2 5s 6 例
在其他文件中读取或创建数据
•可以通过其它程序写成 的文件,如传感器输出 文件 •Load文件后文件中数 据以文件名作为变量名 载入 •文件不在当前目录时需 要加上文件的路径
如: 事先在记事本中建立,并以data1.txt保存: 111 123 136 在MATLAB命令窗口中输入: >> load data1.txt >>data1= 111 123 136 x=load('e:\data_exer.txt') x = 1 1 1 1 2 3 1 3 6
矩阵/数组的创建
– 直接输入法 – 递增数组生成(一维数组) – 外部文件读入法
直接输入
A=[1,2,3;4,5,6;7,8,9] 输入数组用[],数组元素间隔为“,”,数组 行间间隔用“;” 运行结果为 A= 123 456 789
递增数组创建
冒号生成法 格式:X=a:inc:b;如x=1:2:9;(等同x=1:2:10),间 隔2省略时默认为1 定数线性采样法 格式:x=linspace(a,b,n);n是包含a,b在内的总点数。 如x=linspace(1,10,5) x = 1.0000 3.2500 5.5000 7.7500 10.0000 定数对数采样法 格式:x=logspace(a,b,n);使用常用对数采样,第一 个元素为10^a,最后一个为10^b.中间a,b等间隔采样 如x=logspace(0,3,4) x =1 10 100 1000
>> a=[1 2; 3 4]; >> b=a.^2;作为数组运算 b= 1 4 9 16 >> c=a^2;作为矩阵运算 c= 7 10 15 22
字符串数组
字符串的创建
– >> a='This is an example.'
>> A=[‘hello’;’world’]
0 105 0 105
快速生成特殊矩阵
Eye() Magic() Zeros() Ones()
>> magic(5) 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
>>ones(3) 1 1 1 1 1 1 1 1 1
应用概况
MATLAB是当今国际上公认的在数值分 析、处理与计算领域最为优秀的应用软件 和开发环境。科学家的编程语言。在欧美 各高等院校,MATLAB已经成为线性代 数、自动控制理论、数据统计、数字信号 处理、时间序列分析、动态系统仿真、图 形处理等课程的基本数学工具,是攻读学 位的本科(硕、博)必须掌握的基本技能。 在众多的科研院所,MATLAB已经超出 实验室,广泛用于研究和解决具体的工程 问题。
第二章 MATLAB 基础
MATLAB产生过程
MATLAB名字由MATrix和LABoratory两个词 的前三个字母组合而成。 最初MATLAB是新墨西哥大学的Cleve Moler 70年代给学生开线性代数课程时编写的 LINPACK和EISPACK(解线性方程和特征 值)的接口程序,意思是“矩阵实验室”。
符号置换
通用的置换指令
RES=subs(ES, old, new)
例 >> syms a x;f=a*sin(x)+5; >> f1=subs(f,'sin(x)',sym('y')) >> f2=subs(f,{a,x},{2,sym(pi/3)}) f1 = a*y+5 f2 = 3^(1/2)+5
存取数据
如 A=[1 2 3;4 5 6;7 8 9]
Save xishujuzhen A;保存变量A到 Xishujuzhen.mat 文件中 Save xishujuzhen B –append;添加变量B到 xishujuzhen.mat文件中 Save xishujuzhen A B Load xishujuzhen Load xishujuzhen A 文件名可以带路径,默认路径为当前路径 文件名不要带扩展名,默认为“.mat”。
>> eye(3) 1 0 0 0 1 0 0 0 1
• • • • •
det(a) eig(a) inv(a) rank(a) trace(a)
求矩阵a的行列式 求矩阵a的特征值 求矩阵a的逆矩阵 求矩阵a的秩 求矩阵a的迹(对角线元素之和)
矩阵和数组运算的异同
MATLAB 界面浏览
恢复到初始桌面布局Desktop=》desktop layout=》default
MATLAB 变量
MATLAB 语言的变量名规则 – 由一个字母引导,后面可以为其他字符 – 区分大小写 Abc ABc – 有效 MYvar12, MY_Var12 和 MyVar12_ – 错误的变量名 12MyVar, _MyVar12 MATLAB 的特殊变量 – ans, eps, i, j, pi, NaN, Inf – nargin, nargout, lastwarn, lasterr Matalb中所有符号一定要在英文状态下输入,文件名包括路径名不能 出现中文 变量及符号都只能为英文字符(区分=与=,()与(),;与;)
脚本文件
对于一些比较简单的问题 ,在指令窗中直接输入 指令计算. 对于复杂计算,采用脚本文件(Script file)最 为合适. MATLAB只是按文件所写的指令执行. M脚本文件的特点是:
char,str2mat,strcat创建多行串数组,不需 每行字符数相等,用空格按最长的补齐 如s1=char(‘This string array’,’has two rows.’)
元胞数组
同一个元胞数组中不同元胞的内容(数据类型)可以不同,复杂编程 非常有用。 >> c_str=char('这是','元胞数组'); >> R=reshape(1:9,3,3); >> A(1,1)={c_str}; >> A(1,2)={R}; >> A 体育老师 A= 的比较 [2x4 char] [3x3 double] >> B{1,1}=c_str; >> B{1,2}=R; >> B B= [2x4 char] [3x3 double]
单引号
子矩阵提取与赋值
子矩阵提取
可以提取任意一行和任一一列,如a=b(2,:)
再如,提取 A 矩阵全部奇数行,所有列
>>B1=A(1:2:end,:)
子矩阵赋值
>> a=[1 2;3 4] a= 1 2 3 4 >> a(:,6)=105 a= 1 2 0 0 3 4 0 0
第一个下标为行, 第二个为列,下 标从1开始
Matlab发展过程
1984年由Little、Moler、Steve Bangert合作成立 MathWorks公司,并把MATLAB正式推向市场。从这 时起,MATLAB的内核采用C语言编写,而且除原有 的数值计算能力外,还新增了数据图视功能。 1993年,MathWorks公司推出了4.0版本。1997年, MATLAB 5.x版本(release 11)问世。2000年推出了 6.0版本(release 12),2003年推出了6.5版本(release 13) ,最新版本是2004年7月推出的7.0版本(release 14)。现今的MATLAB拥有更丰富的数据类型和结构、 更友善的面向对象、更加快速精良的图形可视、更广 博的数学和数据分析资源、更多的应用开发工具。
机器浮点运算误差限,2.204×10^-16, 绝对值小于该数则认为是零。
MATLAB 数据类型
MATLAB 的基本数据类型
主要包括:数字、字符串、矩阵、单元型数据 (元胞数组)及结构型数据等
1 矩阵/数组及其运算
矩阵与数组区别
– 一维的习惯叫数组,不叫矩阵;二维以上即可数组又
可矩阵。 – 运算稍有不同
( x 2 xet 1)(x e t )
> EXPR=sym('(x^2+x*exp(-t)+1)*(x+exp(-t))'); >> expr1=collect(EXPR) expr1 = x^3+2*exp(-t)*x^2+(1+exp(-t)^2)*x+exp(-t) >> expr2=collect(EXPR,'exp(-t)') expr2 = x*exp(-t)^2+(2*x^2+1)*exp(-t)+(x^2+1)*x
1 x
xy
( x 2 y 2 z 2 )dzdydx
>> syms x y z; >>F2=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y), y, sqrt(x),x^2),x,1,2)
数据可视化
二维图形绘制
二维图形绘制基本语句
构造向量:
例
Matlab语言有如下特点:
1.编程简单、效率高,类似于其他语言,如C 用户使用方便 2.扩充能力强,各种“工具箱”,如统计、语 音信号处理、控制、数字图像处理、小波分析、 神经网络等。 3.高效方便的矩阵和数组运算 4.方便的绘图功能、数据可视化功能强大 5. 强大的系统仿真能力,Simulink建模。在控制 界是国际首选的计算机语言
运行结果
可保存.fig文件, 但为了在wo rd下编辑方 便(投稿时) 常存为.emf文 件
三维图形绘制
三维曲线绘制
5 M文件编程
M文件的形式
脚本文件
– 有效指令的集合 – 以文件名直接调用运行
函数文件
– 格式, 第一行以 function 语句开始
– 命名
– 参数和结果 – 注释的作用
– a=[1 2 3]; b=[4 5 6] ; c=conv(a,b) – 利用逆卷积可以做多项式的除法 – [q, r]=deconv(c,a) 。q,r分别代表整除多项
式及余数多项式。
Matlab的数值计算
LU分解、矩阵范数、方程组的解、矩阵 特征值、函数导数、函数零点、函数的 极值点、数值积分、数据统计、数据拟 合、傅里叶分析都有专门的命令求解, 一般一个命令即可完成。