MATLAB的基本语法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/5/29
第3章 基本使用方法
20
4 矩阵的提取与变换(表2-1)
>>a=eye(5) >> a(2,:) >> a(:,3) >>reshape(a,1,25) >>fliplr(a) >>flipud(a)
2020/5/29
第3章 基本使用方法
21
实验任务
• 实验名称:MATLAB的变量、矩阵运算 • 实验任务: 1 练习矩阵赋值及其运算(+,-,*,/,\,矩
2020/5/29
第3章 基本使用方法
4
向量赋值
生成向量最简单的方法就是在命令窗口中按一定 格式直接输入。输入的格式要求是,向量元素用 “[ ]”括起来,元素之间用空格、逗号或者分号相 隔。
需要注意的是,用它们相隔生成的向量形式是不 相同的:用空格或逗号生成行向量;用分号生成 列向量。
2020/5/29
X^Y能成立吗?
Z=X./Y , Z=X.^Y
X^2能成立吗?
Z=X.^2, Z=2.^[X Y] 2^[X Y]能成立吗?
2020/5/29
结论:非方阵不能按整体做乘幂运算
第3章 基本使用方法
25
例:当D=[1 4 7; 8 5 2;3 6 0], 比较D^3,D.^3和3.^D
说明:标量的矩阵次幂是合法的、比较复杂 的运算,不做要求,有兴趣的同学可探讨。
>>x=[0:0.1:pi]’; disp(‘x sin(x) cos(x) tan(x)’) disp([x sin(x) cos(x) tan(x)]
2020/5/29
第3章 基本使用方法
28
2.4 逻辑判断与流程控制
1) 关系操作符
关系运算符 < > <=
功能 小于 大于 小于等于
关系运算符 >= == ~=
说明: (1) MATLAB的大矩阵可以由适合的小矩阵
组成。 (2) 当矩阵中的最大元素小于0.001或最小
元素大于1000时,会提出公因子显示。
例:>> f=[1e-8,1e6]
2020/5/29
第3章 基本使用方法
15
2. 2 矩阵的初等运算
1 矩阵的加减乘
加减规则:对应的元素相加减。
>> X=[1 4 7];
三角函数:sin cos tan cot asin acos atan acot 指对数函数:exp log log2 log10 复数:abs angle real imag conj 取整函数:round floor ceil fix rem
2020/5/29
第3章 基本使用方法
27
>>x=[0:0.1:pi]’; [x sin(x) cos(x) tan(x)]
wk.baidu.com
a(4,3)=12;
123
456
a(5,:)=[13,14,15];
789
a(:,4)=[1 2 3 4 5];
b=a([2,4],[1,3]);
0 0 12
说明:空矩阵与零矩阵的区别
b=a([2,3,4],:);
2020/5/29
没有左侧变量的情况
第3章 基本使用方法
9
3 复数
• MATLAB 语言对复数的处理也是十分 简便的,在处理复数问题时,不需要 进行其他任何的附加操作。
a^D的说明:这里a是一个标量,D是一
个方阵, a^D=inv(P)*a.^C*P , 其中D可以分
解为inv(P)*C*P, C是以D的特征值为对角线
元素的对角阵。
2020/5/29
第3章 基本使用方法
26
3 元素群的函数
除了专门说明的几个函数,MATLAB函 数都适用于元素群的运算。( 如表2-4中 的三角函数,指数函数,复数函数和取 整函数)
2020/5/29
第3章 基本使用方法
12
复数的共轭和转置
>> a=3+4i,b=conj(a) a=
3.0000 + 4.0000i b=
3.0000 - 4.0000i
>> z2=conj(z)’ z2 =1.0000 + 2.0000i 1.0000 + 1.0000
1.0000 - 2.0000i 1.0000 + 1.0000i
矩阵的抽取运算
a=[1 2 3;4 5 6;7 8 9;10 11 12]; b=a([2,4],[1,3]); a([2,4],:)=[]; a=[1 2 3;4 5 6;7 8 9;10 11 12]; a([1,3],:)=[]; a=[1 2 3;4 5 6;7 8 9;10 11 12]; a(:,[1,3])=[]; 注意:空矩阵和零矩阵的区别
2020/5/29
第3章 基本使用方法
19
3 矩阵的乘方和超越函数
矩阵的乘幂函数(^),指数函数(expm), 对数函数(logm)和开方函数(sqrtm) 都是把矩阵作为整体运算的,其余均对 矩阵元素运算,见下节
例:expm,logm,和sqrtm对矩阵运算, 对矩阵中每个元素运算为exp,log和sqrt
>> z=[1+2i,1-2i;1+i,1-i];z1=z’ z1=1.0000 - 2.0000i 1.0000 - 1.0000i
1.0000 + 2.0000i 1.0000 + 1.0000i
2020/5/29
第3章 基本使用方法
13
4 变量检查
>> who >> whos %给出了更为详细的特征
40 45 50 55 60 • >> vec2=linspace (10,60,11) • vec2 = • 10 15 20 25 30 35
40 45 50 55 60
2020/5/29
第3章 基本使用方法
8
矩阵及其元素赋值
a=[1 2 3;4 5 6; 7 8 9]
123
456
说明:赋值语句的超维表示,7会8自动9 扩展。
第2章 MATLAB的基本语法
教学目标:介绍MATLAB 7的基本使用方法。
• 用户在学习完本章的内容后,可以进行基本的数 值运算,从而能够容易地解决许多在学习和科研 中遇到的计算问题 。
教学重点: MATLAB基本运算、语句以及绘图 教学内容:
2020/5/29
第3章 基本使用方法
1
教学内容
变量及其赋值 矩阵的初等运算 元素群运算 逻辑判断及流程控制 基本绘图方法 M文件及程序调试
2020/5/29
第3章 基本使用方法
2
2.1 变量及其赋值
1 标识符与数
• 标识符(变量名,常量名,函数名的总称) • 合法标识符:必须以字母开头,变量名中可以包
含字母、数字或下划线,但不允许出现标点符号 • 长度规定
说明:(1) MATLAB 不要求对所使用的变量进
行事 先说明,而且它也不需要指定变量的类。
(2)变量名区分大小写。
(3)数据类型(double类型,省去多种格式在
运算速度和内存消耗方面付出代价,计算机时钟
频率和内存容量的几何级增长容易得到弥补。输
出格式有多种见表1-1)
2020/5/29
第3章 基本使用方法
3
2 矩阵及其元素赋值
格式:变量=表达式(或数) 说明:MATLAB中的常量和变量都代表矩阵。 (标量)
2020/5/29
第3章 基本使用方法
10
复数变量和矩阵的赋值方法
2020/5/29
>> a2=pi+3.14j a2 =
3.1416 + 3.1400i >> >> b=4-12i b=
4.0000 -12.0000i >>
>> z=[1+2i,1-2i;1+i,1-i] z=
1.0000+2.0000i 1.0000-2.0000i 1.0000+1.0000i 1.0000-1.0000i >> >> z=[1,1;1,1]+[2,-2;1,-1]*i z= 1.0000+2.0000i 1.0000-2.0000i 1.0000+1.0000第i 13.章00基00本-使1.用00方0法0i
C=A+B else
disp('Dimensions of A and B must agree!') end
2020/5/29
第3章 基本使用方法
17
2 矩阵除法及线性方程组的解
矩阵除法是MATLAB从逆矩阵的概念引申 来的
逆矩阵:若A*B=I, 则A,B互为逆矩阵。 B=inv(A);
左除:A*X=B 数相等)
说明: (1)可通过了解变量的特点来查看工作空间. (2) 一些内定的变量见表2-1. (3) Inf和NaN(其它语言是非法运算)IEEE的运算规则
2020/5/29
第3章 基本使用方法
14
5 基本赋值矩阵
为了方便给大量元素赋值,MATLAB提供了一 些基本矩阵。
例:ones,zeros,magic(3),eye,linespace
2020/5/29
第3章 基本使用方法
24
2 元素群的四则运算和幂次运算
元素群运算是矩阵中单个元素参与运算, 这区别于矩阵的整体运算。
元素群运算必须是同阶的。
例:当X=[1,2,3], Y=[4,5,6],求下式的值
思考: X*Y能成立吗? 元素群左除和右除的区别?
Z=X.*Y, Z=X.\Y ,
第3章 基本使用方法
5
示例
1. a1=[1 2 3 4 5 6]; 2. a2=[1,2, 3, 4, 5, 6]; 3. a3=[1;2; 3; 4; 5; 6]
注:这种超维扩展只适合于赋值语句,在其它语
句出现超维调用的情况,Matlab将给出出错提 示。
2020/5/29
第3章 基本使用方法
6
2020/5/29
第3章 基本使用方法
7
等差元素向量的生成
• 当向量的元素过多, 同时向量各元素有等 差的规律,此时采用 直接输入法将过于繁 琐。针对该种情况 , 可以使用冒号(:) 和 linspace函数来生成等 差元素向量。
• >> vec1=10:5:60 • vec1 = • 10 15 20 25 30 35
功能 大于等于 等于 不等于
注:(1) matlab中的关系运算均适用于矩阵,它是对矩
阵各个元素的群运算. (2)两个相比较的关系运算符必
须有相同的阶数,输出的结果也有相同的阶数。(3) 关
阵行列的提取、小矩阵组成大矩阵) 2 练习复数的运算 3 三种情况下线性方程组的求解
2020/5/29
第3章 基本使用方法
22
元素群运算的引入
• 引入:从实验一画y=sin(t)图形能直接推 广到画y=t*t或y=sin(t)*cos(t)吗?为什么?
• 本节引入的元素群运算,能大大简化编 程,提高运算效率,是Matlab优于其他 许多语言的一大特色。
2020/5/29
第3章 基本使用方法
23
2.3 元素群运算
1 数组及其赋值: (1) 用冒号组成等增量语句(t=初值:增量:终值) (2) 用linspace函数 (3) logspace函数
>> v1=linspace (0, 2*pi,10) >> v2=10:5:60 或v2=[10:5:60] >>v2=10:-3:-5 >> v3= logspace(0,1,11)
>> Y=[2 5 8]; >> Z=X-Y >> V=X+Y >>W=X-1
说明:
(1)维数可用size函数检查(length) (2) 矩阵与标量运算时,自动扩
展标量的阶数。
(3) 单位矩阵除外,矩阵的左乘 和右乘区别。
2020/5/29
第3章 基本使用方法
16
例:两矩阵相加的程序
A=eye(4); B=magic(4); [lA,cA]=size(A); [lB,cB]=size(B); if lA==lB && cA==cB
注意: (1) 只有数字和i的乘
积式中可省略乘 号。 (2) i,j若已赋值, 应清除。 (3) 用a+bi和a+b*i有 区别。 (4) MATLAB的所有 运算符和函数对 复数有效。(+,,*,/,\,^)
11
复数的数学运算及实部虚部
• >> a=1+2*i • a= • 1.0000 + 2.0000i • >> b=3-4i • b= • 3.0000 - 4.0000i • >> c=pi+sin(pi/2)*i • c= • 3.1416 + 1.0000i • >> d=a+b • d= • 4.0000 - 2.0000i • >> f=sqrt(1+2i) • f=1.2720+0.7682i
右除: X*A=B 列数相等))
2020/5/29
X=inv(A)*B=A\B (两矩阵行 X=B *inv(A) =B/A (两矩阵
第3章 基本使用方法
18
示例
6x1+3x2+4x3=3 -2x1+5x2+7x3=-4 8x1-4x2-3x3=-7
(1)求上述线性方程组的解 (2)再加一个方程x1+5x2-7x3=9的解 (3)去掉一个方程的解。