2MATLAB数据及其运算
第2章 MATLAB数据及其运算

③也可以采用矩阵元素的序号来引用矩阵元素。矩 阵元素按列编号,先第一列,再第二列,依次类 推。 显然,下标(subscrip)与序号(index)是一一对 应的。以m×n矩阵A为例,矩阵元素A(i,j)的序 号为 (j-1)*m+i。其相互转换关系也可利用 sub2ind和ind2sub函数求得 sub2ind(size(A),2,3) %已知行列,求序号 [c,d]=ind2sub(size(A),6) %已知序号,求行 列 还可利用reshape(A,m,n)在矩阵总元素不变的前 提下,将矩阵重排
2、赋值语句
(1) 变量=表达式 (2) 表达式 一般地,运算结果在命令窗口中显示出来。如果在语句的最 后加分号,那么,MATLAB仅仅执行赋值操作,不再显示运 算的结果。 在MATLAB语句后面可以加上注释,注释以%开头,后面 是注释的内容。 例2.1 计算表达式的值,并将结果赋给变量x,然后显示 出结果。 在MATLAB命令窗口输入命令:
linspace(a,b,n)与a:(b-a)/(n-1):b等价。
logspace函数生成从10a到10b之间按对数等分的 n个元素的行向量,n如果省略则默认值为50。
21
2.3.3 矩阵的拆分
1. 矩阵元素
①MATLAB允许用户对一个矩阵的单个元素进行赋 值和操作。例如: A=ones(4);A(3,2)=200 只改变该元素的值,而不影响其他元素的值。 ② 如果给出的行下标或列下标大于原来矩阵的行数 和列数,则MATLAB将自动扩展原来的矩阵,并将 扩展后未赋值得矩阵元素置为0。例如: A(5,6)=10
10
2.2.3 数据的输出格式
MATLAB用十进制数表示一个常数,具体可 采用日常记数法和科学记数法两种表示方法。 在命令窗口中,默认情况下当数值为整数时, 数值计算的结果以整数显示;当数值为实数 时,以小数点后四位的精度近似显示,即以 短(short)格式显示;如果数值超过这一范 围,则以科学计数法显示结果。
第二讲 MATLAB基本运算

矩阵下标的用途
访问超出矩阵范围时,产生 Index exceeds matrix dimentions 存储超出矩阵范围时,矩阵自动调节 大小,将指定位置元素置入,其他没 指定数的位置默认为零。
2010-12-25
21
矩阵下标的用途
(2)矩阵连接 例:a=[1 2;3 4] b=[a a+5; a-5 zeros(size(a)] 将小矩阵嵌套入大矩阵,实现矩阵连接。
将矩阵按创建原则写入一个M文件, 在MATLAB的命令窗口或程序中直接执 行该M文件,即将矩阵调入工组空间。
2010-12-25
15
利用MATLAB函数创建矩阵 利用MATLAB函数创建矩阵 MATLAB
ones( m, n) - m行n列的1阵产生 zeros(m, n) -产生m行n列的全0阵 rand(m, n) -产生m行n列均匀分布全列的在 [0,1]区间的随机阵 randn(m, n) -产生m行n列的正态分布矩阵 eye(n) -产生n维单位阵
2010-12-25 18
2.2.3 矩阵的下标 .2.3
子矩阵提取A(v1, v2)
v1表示子矩阵包含的行标构成的向量 v2表示子矩阵包含的列标构成的向量 B1=A(:, [1, 3]) 为:时表示要提取所有行(列) B2=A(1:2:end, :) end表示最后一行(列) B3=A([3,2,1],[2,3,4]) 例: B4=A(:, end:-1:1) 提取A矩阵所有行、1,3列 提取A矩阵 3,2,1 行、2,3,4 列构成子矩阵 提取A矩阵全部奇数行,所有列 将A矩阵左右翻转
2010-12-25
13
直接输入法创建矩阵
例:创建矩阵
第二章MATLAB数据及其运算

显然,linspace(a,b,n) =a:(b-a)/(n-1):b
17
矩阵元素的引用
方法一:通过下标(subscript)引用矩阵的元素
– 例如 A(3,2)=200
方法二:采用矩阵元素的序号(index)来引用矩阵元素。
例:利用M文件建立MYMAT矩阵
– (1) 启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵: MYMAT=[101,102,103,104,105,106,107,108,109; 201,202,203,204,205,206,207,208,209; 301,302,303,304,305,306,307,308,309];
主要内容 MATLAB 数据的特点 变量及其操作 MATLAB矩阵的表示 MATLAB数据的运算 字符串 结构数据和单元数据
1
MATLAB数据的特点
矩阵是MATLAB最基本、最重要的数据对象 – MATLAB的大部分运算或命令都是在矩阵运算的意义 下执行的
问题: – 单个数据如何用矩阵表示?x=5 – 1*1矩阵 – 向量如何用矩阵表示?a=[1,2,3] – 行向量:1*n矩阵;列向量:n * 1矩阵
A(1,2) = [ ] 出错!
A(1,2) = 0
可以
21
主要内容 MATLAB 数据的特点 变量及其操作 MATLAB矩阵的表示 MATLAB数据的运算 字符串 结构数据和单元数据
22
MATLAB数据的运算
算术运算
– 基本算术运算 » +(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)
第2章MATLAB数据及其运算习题答案.doc

第2章 MATLAB数据及其运算习题2一、选择题1.下列可作为MA TLAB合法变量名的是()。
DA.合计B.123 C.@h D.xyz_2a 2.下列数值数据表示中错误的是()。
CA.+10 B.1.2e-5 C.2e D.2i3.使用语句t=0:7生成的是()个元素的向量。
AA.8 B.7 C.6 D.54.执行语句A=[1,2,3;4,5,6]后,A(3)的值是()。
BA.1 B.2 C.3 D.4 5.已知a为3×3矩阵,则a(:,end)是指()。
DA.所有元素B.第一行元素C.第三行元素D.第三列元素6.已知a为3×3矩阵,则运行a (1)=[]后()。
AA.a变成行向量B.a变为2行2列C.a变为3行2列D.a变为2行3列7.在命令行窗口输入下列命令后,x的值是()。
B>> clear>> x=i*jA.不确定B.-1 C.1D.i*j 8.fix(354/100)+mod(354,10)*10的值是()。
DA.34 B.354 C.453D.43 9.下列语句中错误的是()。
BA.x==y==3 B.x=y=3C.x=y==3 D.y=3,x=y10.find(1:2:20>15)的结果是()。
CA.19 20 B.17 19C.9 10 D.8 911.输入字符串时,要用()将字符括起来。
CA.[ ] B.{ } C.' ' D." " 12.已知s='显示"hello"',则s的元素个数是()。
AA.9 B.11 C.7 D.1813.eval('sqrt(4)+2')的值是()。
BA.sqrt(4)+2 B.4 C.2 D.2,214.有3×4的结构矩阵student,每个结构有name(姓名)、scores(分数)两个成员,其中scores是以1×5矩阵表示的5门课的成绩,那么要删除第4个学生的第2门课成绩,应采用的正确命令是()。
第2章--MATLAB数据及其运算-习题答案教学内容

第2章--M A T L A B数据及其运算-习题答案第2章 MATLAB数据及其运算习题2一、选择题1.下列可作为MATLAB合法变量名的是()。
D A.合计 B.123 C.@h D.xyz_2a 2.下列数值数据表示中错误的是()。
CA.+10 B.1.2e-5 C.2e D.2i3.使用语句t=0:7生成的是()个元素的向量。
A A.8 B.7 C.6 D.54.执行语句A=[1,2,3;4,5,6]后,A(3)的值是()。
B A.1 B.2 C.3 D.45.已知a为3×3矩阵,则a(:,end)是指()。
D A.所有元素 B.第一行元素C.第三行元素 D.第三列元素6.已知a为3×3矩阵,则运行a (1)=[]后()。
A A.a变成行向量 B.a变为2行2列C.a变为3行2列 D.a变为2行3列7.在命令行窗口输入下列命令后,x的值是()。
B >> clear>> x=i*jA.不确定 B.-1 C.1 D.i*j 8.fix(354/100)+mod(354,10)*10的值是()。
D A.34 B.354 C.453 D.439.下列语句中错误的是()。
BA.x==y==3 B.x=y=3C.x=y==3 D.y=3,x=y10.find(1:2:20>15)的结果是()。
CA.19 20 B.17 19C.9 10 D.8 911.输入字符串时,要用()将字符括起来。
C A.[ ] B.{ } C.' ' D." " 12.已知s='显示"hello"',则s的元素个数是()。
A A.9 B.11 C.7 D.1813.eval('sqrt(4)+2')的值是()。
BA.sqrt(4)+2 B.4 C.2 D.2, 214.有3×4的结构矩阵student,每个结构有name(姓名)、scores(分数)两个成员,其中scores是以1×5矩阵表示的5门课的成绩,那么要删除第4个学生的第2门课成绩,应采用的正确命令是()。
第2章 MATLAB数据及其运算.

8 1 d 3 5
(2)利用空矩阵删除矩阵的元素 a=[ ] a的维数为0。 例:a( 2 , : )= [ ]; 8 1 6 得: 3 5 7 a a= 4 9 2 8 1 6 4 9 2
2.3.5
复数(Com part)和虚部(imaginary part)组 成。 虚数单位用i或j来表示。 6+5i = 6+5j
format bank format rat
2.3 MATLAB矩阵的表示
2.3.1 矩阵 MATLAB中最基本的数据结构是矩阵(matrix)。 1*1的矩阵----标量(scalar): [5] 只有一行或一列的矩阵-----向量(vector): [1 3 5 7]
2 4 6 8
2.4 Matlab数据的运算(Operators ) 运算符(Operators )
+ Addition
*
Subtraction
Multiplication
/
\
Division
Left division
^
Power
2.4.1 算术运算 (1)矩阵加减运算: 两个同维矩阵,才能进行加减运算,对应无素相加减。 一个标量与矩阵相加减时,结果为这个标量与矩阵的 每一个元素相加减。 x=[2,-1,0;3 2 -4]; y=ones(2,3); x-y=? [1,-2,-1;2,1,-5] x+1=? [3,0,1;4,3,-3]
在线性代数中,本没有矩阵除法,它是由逆 矩阵引申来的。 MATLAB中,矩阵求逆(Matrix inverse)的函 数为: Y = inv(X) 方程A*X=B的解为:X=inv(A)*B=A\B, A\B称为A左除B,左除时要求两矩阵行数相等。 方程X*A=B的解为:X=B*inv(A)=B/A, A/B称为A右除B,右除时要求两矩阵列数相等。
第二章 MATLAB的数值计算(修改版)

2.2.3 矩阵的基本运算
矩阵的乘(*)运算
规则: A矩阵的列数必须等于B矩阵的行数 标量可与任何矩阵相乘。 例如: a=[1 2 3;4 5 6;7 8 0];b=[1;2;3];c=a*b c =14 32 23
2.2.3 矩阵的基本运算
矩阵的除运算 矩阵除的运算在线性代数中没有,有矩阵逆的运算,在matlab中有两种 矩阵除运算即左除和右除 左除‚\”: 相当于Ax=B的解,x=A-1B。 右除‚/”:相当于xA=B的解,x=BA-1 此外,矩阵也可和常数进行除运算,此时常数只能作为除数
方法二 冒号生成 基本格式:x=x1:step:x2 x=x1:x2 比如: D = 4:0.5:9 E = 5:9
2.1.3 向量的运算
与数的运算 比如: A = 0:9; B = A-1 C = A*2 点积运算 指两个向量在其中一个向量方向上的投影的乘积。 dot(a,b) a,b必须同维 比如: A = 0:3; B = 1:4; C = dot(A,B)
注意:MATLAB函数名必须小写
2.2.2 矩阵的修改
方法一:直接修改 可用键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即 可修改。 方法二: 指令修改 可以用A(,)= 来修改。 比如: 对于A=[1 2 3;4 9 6;7 8 9],若将其中的9修改为5,则可以通过上述的两 种方法: 法一不用介绍; 方法二可使用A(2,2)=5来修改
特征多项式的特点:
(1)特征多项式一定是n+1维的 (2)特征多项式第一个元素一定是1
根据多项式对应的全部根可建立其特征多项式: poly —— 产生特征多项式系数向量
已知一个多项式的全部根X求多项式系数的函数是poly(X),该函数返回以X为 全部根的一个多项式P,当X是一个长度为m的向量时,P是一个长度为m+1的 向量。
matlab2-数值计算new1

用load指令调用已生成的mat文件。
1. load —— 2. load data —— 3. load data a b —— 4. load data a b -ascii
即可恢复保存 过的所有变量
mat文件是标准的二进制文件,还
可以ASCII码形式保存。
5.矩阵运算
矩阵加、减(+,-)运算
a(:,3)=0 a=1 3 7 2 0 8 0 0 0
a =1 0 7
2 0 8
0 0 9
3) 删除行或列
将行或列指定为空数组,可以删除行或列 A=[16 2 2 13;5 3 11 8;9 4 7 12;4 5 14 1] X = A;删除第二列 X(:,2) = [ ] X= 16 2 5 9 11 7 13 8 12
5)矩阵的组合 C=[A B]
C=[A;B]
4.数据的保存与获取
把matlab工作空间中一些有用的数据长久保存下来的方法是生 成mat数据文件。 1. save —将工作空间中所有变量保存matlab.mat中
2. 3. 4. 5. 6.
save data—将工作空间中所有变量保存为data.mat
矩阵分析
1. 矩阵行列式det 通常用来判断矩阵是否奇异
>>A=magic(3) A= 8 1 6 3 5 7 4 9 2 >>det(A) ans=-360
2. 矩阵的逆inv 对于线性方程组A*X=b, 有X=inv(A)*b
>>A=magic(3) A= 8 1 6 3 5 7 4 9 2 >>B=inv(A) B= 0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
部分常用的预定义变量及其含义
ans eps 命令窗最近一次命令的结果 机器的浮点误差限 2.2204e016
i和j inf NaN
pi
纯单位虚数 无穷大 不定式,如0/0
圆周率的双精度浮点表示 3.1416
lasterr
lastwarn
最新一次的错误信息
最新一次的警告信息
内存变量的显示
who和whos这两个命令用于显示在 MATLAB工作空间中已经驻留的变量名清 单。who命令只显示出驻留变量的名称,
my_var、myvar12、nu_ 12nu、_kk12 NU、nu、Nu
(√) (×)
Matlab提供的标准函数名以及命令名均为小写字母.如inv(A),而非 Inv(A)或INV(A) 注:基本变量类型为矩阵,不用定义维数
赋值语句
1. 直接赋值语句: 变量=表达式
例: a=5 2. 函数调用语句: 表达式([返回变量列表] = 函数名(输入变量 列表)) 其中表达式是用运算符将有关运算量连接起来的式子,其结果 是一个矩阵。
对于较大矩阵的输入,可采用变量编辑器
在命令窗口中向一个新变量赋空矩阵 A=[]; 在工作空间窗口中打开该变量
在变量编辑窗口中出现空白表格。表格的每 一个方格对应矩阵的一个元素,在方格中填 写元素值。
内存变量文件
利用MAT文件可以把当前MATLAB工作空间中的一些有用变 量长久地保留下来,扩展名是.mat。MAT文件的生成和装入由save 和load命令来完成。常用格式为: save 文件名 [变量名表] [-append][-ascii] load 文件名 [变量名表] [-ascii] 其中,文件名可以带路径,但不需带扩展名.mat,命令隐含一 定对.mat文件进行操作。变量名表中的变量个数不限,只要内存或 文件中存在即可,变量名之间以空格分隔。当变量名表省略时,保 存或装入全部变量。-ascii选项使文件以ASCII格式处理,省略该选 项时文件将以二进制格式处理。save命令中的-append选项控制将 变量追加到MAT文件中。
6 10
1
2
3
4
5
>> cc=[c,2*c,[1;3;5;7;9]] cc = 1 2 1
3
6
3
5 7
6 12 9 18
3
6
9
最简单的建立矩阵的方法是从键盘直接输入 矩阵的元素。具体方法如下:将矩阵的元素 用方括号括起来,按矩阵行的顺序输入各元
素,同一行的各元素之间用空格或逗号分隔, 不同行的元素之间用分号分隔。
int8
int16 int32
signed 8-bit integer.
signed 16-bit integer. signed 32-bit integer.
2.2 变量及其操作
变量与赋值
在MATLAB 7.0中,变量名是以字母开头,后接字母、数字或下划线
的字符序列,最多63个字符。在MATLAB中,变量名区分字母的大 小写。
在一般情况下,MATLAB内部每一个数据元素都是用
双精度数来表示和存储的。数据输出时用户可以用format 命令设置或改变数据输出格式。format命令的格式为: format 格式符 其中格式符决定数据的输出格式
注:format只影响数据输出格式,而不影响数据的 计算和存储。
格式符
short long short e long e short g long g rat hex
变量。相应地,通过File菜单中的Import Data命令可 以将保存在MAT文件中的变量装入到MATLAB工作空 间。
数据的输出格式
MATLAB用十进制数表示一个常数,具体可采用日常
记数法和科学记数法两种表示方法。
3.14159、-9.359i、3+5i或 1.78029e2、6.732E2i、1234e-3-5i
Grand total is 13 elements using 80 bytes
内存变量的删除与修改
Clear命令可用于删除MATLAB工作空间中的变量。 注意:预定义变量不能被删除 MATLAB工作空间窗口专门用于内存变量的管理。 在工作空间窗口中可以显示所有内存变量的属性。 当选中某些变量后,再单击Delete按钮,就能删除 这些变量。当选中某些变量后,再单击Open Selection按钮,将进入变量编辑器。通过变量编辑 器可以直接观察变量中的具体元素,也可修改变量 中的具体元素。
+
bank compact loose
正数、负数、零分别用+、-、空格表示
银行格式,元、角、分表示 输出变量之间没有空行 输出变量之间有空行
如果输出矩阵的每个元素都是纯整数,MATLAB就用不加小数点的 纯整数格式显示结果。只要矩阵中有一个元素不是纯整数, MATLAB将按当前的输出格式显示计算结果。默认的输出格式是 short格式。
若对i很隐蔽的错误。例如,由于习惯的原因,程序中通常使用i,j作
为循环变量,这时如果有复数去处就会导致错误,因此,不要使用 i,j作为循环变量名,除非确认在程序的作用域内不会和复数打交道; 或者使用像4+3i这样的复数记法,而不是4+3*i。也可以在使用i作 为循环变量时,换用j表示复数。
例:
save myvar a b load myvar load D:\work\myvar 除了操作命令外,通过MATLAB命令窗口File菜单中的 Save Workspace As命令可以保存工作空间中的全部 %存放到当前目录
save D:\work\myvar a b %存放到D:\work目录下
“假”。
MATLAB 基本数据类型
char cell character array (string). cell array.
struct
single uint8 uint16 uint32
structure array
single precision unsigned 8-bit integer unsigned 16-bit integer. unsigned 32-bit integer.
2.3 MATLAB矩阵的表示
在 MATLAB 中表示矩阵是非
常方便灵活的,如输入矩阵 在 MATLAB 命令窗中输入
下面语句: >> a=[1 2 3;4 5 6;7 8 9] a=
1 2 3 4 5 6 7 8 9
左边语句在工作区中建立了变量
a ,语句的末尾没有分号,显示 结果,否则不显示结果,如下面
>>x=linspace(1,9,5)
x=?
矩阵元素
设矩阵 a 为
>> a=magic(3) a=8 1 6
访问矩阵的某一个元素
(第二行第三列)
>> a(2,3) ans = 7
a= 8 3 4 0 1 5 9 0 6 7 2 0 0 0 0 0 0 0 0 10
其中pi和i都是MATLAB预先定义的变量,分别代表
代表圆周率π和虚数单位。
输出结果是:
z= -0.3488 + 0.3286i
例2-2 计算表达式 的值,并将结果赋给 变量x,然后显示计算结果。
在MATLAB命令窗口输入命令:
5 cos 47 1 7 2i
x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i)
种运算定义在复数域上。向量和单个数据都可以作为矩阵的 特例来处理。
数值数据:双精度型(8)、单精度数(4)、带符号整数和无符
号整数,int8,int16,uint8,uint16,uint32。 字符数据:char()。
结构体(Structure)和单元(Cell)数据类型。
稀疏矩阵(Sparse)。 逻辑型数据。以数值1(非零)表示“真”,以数值0表示
1
4 7
2
5 8
3
6 9
语句 >> a=[1 2 3;4 5 6;7 8 9];
>>
下面语句输入行向量和列向量
>> b=[3 5 2 4 7]
由已知矩阵获得新的矩阵
>> bb=[b;2*b;1 2 3 4 5]
bb = 3 5 4 2 4 8 14 7
b=
3 c= 1 3 6 9 3 5 2 4 7 >> c=[1;3;6;9;3]
含义
输出小数点4位,最多不超过7位有效数字,对大于1000的实 数用5位有效数字的科学记数形式输出 15位有效数字形式输出 5位有效数字的科学记数形式输出 15位有效数字的科学记数形式输出 从short和short e中自动选择最佳输出方式 从long和long e中自动选择最佳输出方式 近似有理数表示 十六进制表示
其中pi和i都是MATLAB预先定义的变量,分别代表代表圆
周率π和虚数单位。
输出结果为: x= 1.1980+0.6572i
预定义变量
在MATLAB工作空间中,还驻留几个由系统本身定义的变量。 例如,用pi表示圆周率π的近似值,用i,j表示虚数单位。 预定义变量有特定的含义,在使用时,应尽量避免对这些变 量重新赋值。
0 2.0000 + 1.0000i
利用M文件建立矩阵
对于比较大且比较复杂的矩阵,可以为它专门建立一个
M文件。
例2.2 利用M文件建立MYMAT矩阵。 (1) 启动有关编辑程序或MATLAB文本编辑器,并输入
待建矩阵: (2) 把输入的内容以纯文本方式存盘(设文件名为 mymatrix.m)。 (3) 在MATLAB命令窗口中输入mymatrix,即运行该M 文件,就会自动建立一个名为MYMAT的矩阵,可供以 后使用。