MATLAB数据及其运算
第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数据及其运算_习题答案
第2章M A T L A B数据及其运算_习题答案(总3页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--第2章 MATLAB数据及其运算习题2一、选择题1.下列可作为MATLAB合法变量名的是()。
D A.合计 B.123 C.@h D.xyz_2a 2.下列数值数据表示中错误的是()。
CA.+10 B. 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.4 5.已知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.输入字符串时,要用()将字符括起来。
CA.[ ] B.{ } C.' ' D." " 12.已知s='显示"hello"',则s的元素个数是()。
A A.9 B.11 C.7 D.1813.eval('sqrt(4)+2')的值是()。
matlab教程(第3讲-数组)
2.1数值表示、变量及表达式 (续)
运算符和表达式
运算
加 减 乘 除 幂
数学表达式
a+b a-b axb a/b或a\b
MATLAB运算符
+ * /或 \ ^
MATLAB表达式
a+b a-b a*b a/b或a\b a^b
第二种方法:使用冒号“:”操作符
〘例2-2〙创建以1~10顺序排列整数为元素的 行向量b。>>b=1:10 b=1 2 3 4 5 6 7 8 9 10
2016/11/22 Application of Matlab Language 10
所有的向量元素必须在操作符“[ ]”之内; 向量元素间用空格或英文的逗点“,”分开。
计算
z
z3
z1=3+4*i, z2=1+2*i, z3=exp(i*pi/6), z=z1*z2/z3 z_real=real(z), z_image=imag(z), z_angle=angle(z), z_length=abs(z),
2016/11/22
Application of Matlab Language
第四种方法:利用函数logspace 列向量的创建
通过实验认识该函数的功能。
使用方括号“[ ]”操作符,使用分号“;”分 割行。
〘例2-5〙键入并执行x= [1; 2; 3] X=1 2 3
使用冒号操作符
〘例2-6〙键入并执行x= (1:3)‟ % “ ‟ ”表示矩阵的转 置
2016/11/22 Application of Matlab Language 13
MATLAB数据及其运算
补:两个多维数组的 点运算。
3. MATLAB常用数学函数
函数使用说明:
(1) 三角函数以弧度为单位计算。 (2) abs函数可以求实数的绝对值、复数的 模、字符串的ASCII码值。 (3) 用于取整的函数有fix、floor、ceil、 round,要注意它们的区别。 (4) rem与mod函数的区别。rem(x,y)和 mod(x,y)要求x,y必须为相同大小的实矩阵 或为标量。
p25
A=[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ]
[1 3 5 11 13 15 ]
A( [1,3],[1 3 5] )
可以利用 一般向量 和 end 运算符来表示矩阵下标, 从而获得子矩阵。end表示某一维的末尾元素下标。
A( [1,end-பைடு நூலகம்],[1 :2:end] ) ?
例2.3 建立5阶方阵A,判断A的元素是否能被3整 除。
A =[24,35,13,22,63;23,39,47,80,80; ... 90,41,80,29,10;45,57,85,62,21;37,19,31,88,76]
P = rem(A,3)==0
其中,rem(A,3)是矩阵A的每个元素除以3的余数 矩阵。此时,0被扩展为与A同维数的零矩阵,P 是进行等于(==)比较的结果矩阵。
A(3,2)=200
采用矩阵元素的序号(Index)来引用矩阵元素。
1 矩阵元素的序号就是相应元素在内存中的排列顺序。在
4
MATLAB中,矩阵元素按列存储,先第一列,再第二列,依 次类推。例如
2 A=[1,2,3 ;
第二章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数据的运算
算术运算
– 基本算术运算 » +(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)
MATLAB之(一)数组、矩阵和函数及运算
说明 4位小数
3.14159265358979 15位小数
3.14
2位小数
355/113
最接近的有理数
format short e,t =pi 3.1416e+000
科学计数
format long e ,t =pi 四、函数
3.141592653589793e+000
MATLAB提供了大量的函数,按照起用法分为标量函数、 向量函数和矩阵函数。
14
b= 1 3 5 7
c=6:-3:-6(从6到-6公差为-3的等差数组)
c=
6 3 0 -3 -6 e=[0:2:8,ones(1,3)](等差数组和行向量的拼接)
e=
0 2468111
2数组的运算
数组除作为1×n矩阵(行向量)遵循矩阵运算外,
MATLAB还为数组提供了一些特殊运算。两个数组间的
的最重要特征是按元素进行运算。
2021/4/14
13
1 数组的输入 ⑴可以像1×n矩阵(即行向量)一样输入,如: a=[2,3,4,5] a=
2345
⑵数组常用“:”来方便地生成一些特殊的数组。如:
a=1:5(从1到5公差为1的等差数组)
a=
12345
b=1:2:7(从1到7公差为2的等差数组)
2021/4/14
(5) randn(生成正态分布随机矩阵); U=ones(3)
W=zeros(2,3) V=eye(2,4)
U=
W=
V=
111
000
2021/4/14
000
1000 0100
111
9
111
X=rand(2,3)
X=
第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数值运算.pdf
第3章 MATLAB 数值运算教学提示:每当难以对一个函数进行积分或者微分以确定一些特殊的值时,可以借助计算机在数值上近似所需的结果,从而生成其他方法无法求解的问题的近似解。
这在计算机科学和数学领域,称为数值分析。
本章涉及的数值分析的主要内容有插值与多项式拟合、数值微积分、线性方程组的数值求解、微分方程的求解等,掌握这些主要内容及相应的基本算法有助于分析、理解、改进甚至构造新的数值算法。
教学要求:本章主要是让学生掌握数值分析中多项式插值和拟合、牛顿-科茨系列数值求积公式、3种迭代方法求解线性方程组、解常微分方程的欧拉法和龙格-库塔法等具体的数值算法,并要求这些数值算法能在MATLAB 中实现。
3.1 多 项 式在工程及科学分析上,多项式常被用来模拟一个物理现象的解析函数。
之所以采用多项式,是因为它很容易计算,多项式运算是数学中最基本的运算之一。
在高等数学中,多项式一般可表示为以下形式:120121()n n n n n f x a x a x a x a x a −−−=+++++…。
当x 是矩阵形式时,代表矩阵多项式,矩阵多项式是矩阵分析的一个重要组成部分,也是控制论和系统工程的一个重要工具。
3.1.1 多项式的表达和创建在MATLAB 中,多项式表示成向量的形式,它的系数是按降序排列的。
只需将按降幂次序的多项式的每个系数填入向量中,就可以在MATLAB 中建立一个多项式。
例如,多项式43231529s s s s +−−+在MATLAB 中,按下面方式组成一个向量x = [1 3 -15 -2 9]MATLAB 会将长度为n +1的向量解释成一个n 阶多项式。
因此,若多项式某些项系数为零,则必须在向量中相应位置补零。
例如多项式41s +在MATLAB 环境下表示为y = [1 0 0 0 1]3.1.2 多项式的四则运算多项式的四则运算包括多项式的加、减、乘、除运算。
下面以对两个同阶次多项式MATLAB 基础及其应用教程·66··66·32()234a x x x x =+++,32()4916b x x x x =+++做加减乘除运算为例,说明多项式的四则运算过程。
MATLAB数值计算功能(向量、矩阵、数组、稀疏矩阵)
数值计算功能向量及其运算1、向量生成(1)、直接输入向量元素用“ [ ]”括起来,用空格或逗号生成行向量,用分号生成列向量a1=[11 14 17 18]a2=[11,14,17,18]a2=[11;14;17;18]%列向量用“ ’”能够进行向量转置a1=[11 14 17 18]a4=a1'%a1 行向量,a4 列向量也能够用组合方法:A=[1 2 3];B=[7 8 9];C=[A 4 ones(1,2) B](2)、等差元素向量生成冒号生成法:Vec=Vec0:n:Vecn,此中Vec表示生成地向量,Vec0表示第一个元素,n表示步长,Vecn 表示最后一个元素使用 linespace 函数: Vec=linespace(Vec0,n,Vecn),此中 Vec 表示生成地向量 ,Vec0 表示第一个元素 ,n 表示生成向量元素个数(默认 n=100) ,Vecn 表示最后一个元素vec1=10:5:50vec2=50:-5:10vec3=linspace(10,50,6)2、向量地基本运算(1)、向量与数地四则运算向量中每个元素与数地加减乘除运算(除法运算时,向量只好作为被除数,数只好作为除数)vec1=linspace(10,50,6)vec1+100vec2=logspace(0,10,6) %对数平分向量vec2/100(2)、向量与向量之间地加减运算向量中地每个元素与另一个向量中相对应地元素地加减运算vec1=linspace(10,50,6)vec2=logspace(0,2,6)vec3=vec1+vec2(3)、点积、叉积和混淆机点积: dot 函数 ,注意愿量维数地一致性x1=[11 22 33 44]x2=[1 2 3 4]sum(x1.*x2) %还能够采纳sum 函数计算向量地址积叉积: cross 函数 ,注意愿量维数地一致性(由几何意义可知,向量维数只好为3)x1=[11 22 33 44]x2=[1 2 3 4]x3=cross(x1,x2)%报错 ,维数只好为3x1=[11 22 33]x2=[1 2 3]x3=cross(x1,x2)混淆积:结果为一个数,先求 cross,再求 dota=[1 2 3]b=[2 4 3]c=[5 2 1]v=dot(a,cross(b,c))v=cross(a,dot(b,c)) %报错矩阵及其运算MATLAB地基本单位是矩阵,逗号或空格划分同一行不一样元,分号划分不一样行素1、矩阵地生成4 种方法:在command window直接输入;经过语句和函数产生;M 文件中成立;外面数据文件中导入(1)、直接输入:把矩阵元素直接摆列到方括号中 ,每行元素用逗号或空格相隔 ,行与行之间用分号相隔martix=[1 1 1 1;2,2,2,2;3,3,3,3;4 4 4 4]冒号用法:A=[1 1 1;1 2 3;1 3 6]B=A(1:2,:)(2)文件导入:*.mat*.txt*.datload 文件名参数直接导入: File—Import Data2、矩阵地基本数值运算(1)、矩阵与是常数地四则运算(除法时,常数只好作为除数)matrix=[1 1 1 1;2,2,2,2;3,3,3,3;4 4 4 4]m1=100+matrixm2=100-matrixm3=100*matrixm4=matrix/2(2)、矩阵之间地四则运算加减法:矩阵各个元素之间地加减法,一定是同型矩阵matrix=[1 1 1 1;2,2,2,2;3,3,3,3;4 4 4 4]m2=m1+matrixm3=[11 22 33;1 2 3;4 5 6]m4=matrix-m1m5=m3+m1 %报错 ,非同型矩阵乘法:用 *, 左矩阵地列数需等于右矩阵地行数A=[1111;2222;3333;4444]B=[1592;6357;2589;4563]C=A*BD=[1 5 9;6 3 5;2 5 8]3*3矩阵相乘E=A*D% 报错 ,4*4 矩阵不可以与除法:左除( AX=B 则 X=A\B,相当于 X=inv(A)*B, 可是左除稳固性好)右除 / ( XA=B 则 X=B/A,相当于 X=B*inv(A))个人认为:左除相当于逆矩阵左乘,右除相当于逆矩阵右乘%解方程组XA=B地解 ,本列中 A=[2 1 -1; 2 1 0;1 -1 1] ;B=[1 -1 3;4 3 2] A=[2 1 -1; 2 1 0;1 -1 1]B=[1 -1 3;4 3 2]X=B/A矩阵能够使用比较运算符:结果矩阵地对应地点为0 或1数据变换:floorceilroundfixrem[n,d]=rat(A): A 表示为两个整数阵对应元素相除地形式A=n./d 3、矩阵地特点参数运算(1)、乘方与开方乘方: A^p 计算 A 地 p 次方p>0: A 地 p 次方p<0: A 逆矩阵地abs(p)次方A=[1234;4567;4567;891011]B=A^10开方:如有X*X=A,则有sqrtm(A)=XA=magic(5)B=sqrtm(A)B^2 %考证正确性(2)、指数与对数指数: expm(X)=V*diag(exp(diag(D)))/V ( [V,D]=eig(X))对数: L=logm(A),与指数运算互逆X=rand(4)Y=expm(X)A=randn(4)(3)、逆运算inv函数 ,充要条件:矩阵地队列式不为0A=[1000;1200;2130;1214]B=inv(A)广义逆矩阵(伪逆):pinv(A)非奇怪矩阵地pinv 与inv 相同(4)、队列式det函数A=[1000;1200;2130;1214]B=inv(A)x=det(A)y=det(B)i=x*y(5)、特点值E=eig(X):生成由X 地特点值构成地列向量[V,D]=eig(X): V 是以 X 地特点向量为列向量地矩阵,D 是由矩阵X 地特点值构成地对角阵D=eigs(X):生成由X 地特点值构成地列向量(eigs 函数使用迭代法求解矩阵地特点值和特点向量 ,X 一定是方阵,最好是大型稀少矩阵)[V,D]=eig(X): V 是以X 地特点向量为列向量地矩阵,D 是由矩阵X 地特点值构成地对角阵X=magic(3)A=[1 0 0;0 0 3;0 9 0]E=eig(X)[V D]=eig(X)D=eigs(A)[V D]=eigs(A)(6)、矩阵(向量)地范数norm(X) : 2-范数norm(X,2) : 2-范数norm(X,1) : 1-范数norm(X,inf) :无量范数norm(X,’fro ’): Frobenius 范数normest(X) :只好计算2-范数 ,而且是 2-范数地预计值,用于计算norm(X) 比较费时地状况X=hilb(4)norm(4)norm(X)norm(X,2)norm(X,1)norm(X,inf)norm(X,'fro')normest(X)(7)、矩阵地条件数运算矩阵地条件数是判断矩阵“病态”成都地一个胸怀,矩阵 A 地条件数越大,表示 A 越病态 ,反之 ,表示 A 越良态 ,Hilbert矩阵就是闻名地病态矩阵cond(X):返回对于矩阵X 地 2-范数地条件数cond(X,P):对于矩阵X 地 P-范数地条件数(P 为 1、 2、 inf rcond(X):计算矩阵条件数地倒数值,该值越靠近0 就越病态condest(X):计算对于矩阵X 地 1-范数地条件数地预计值M=magic(3);H=hilb(4);c1=cond(M)c2=cond(M,1)c3=rcond(M)c4=condest(M)h1=cond(H)h2=cond(H,inf)h3=rcond(H)h4=condest(H)或’fro’),越靠近 1 就越良态由以上结果能够看出,魔术矩阵比较良态,Hilbert矩阵是病态地(8)、秩rank 函数T=rand(6)rank(T) %6,满秩矩阵T1=[1 1 1;2 2 3]r=rank(T1)%r=2,行满秩矩阵(9)、迹trace 函数 ,主对角线上全部元素地和,也是特点值之和M=magic(5)T=trace(M)T1=eig(M)T2=sum(T1)4、矩阵地分解运算(1)、三角分解(lu)非奇怪矩阵 A( n*n ),假如其次序主子式均不为 0,则存在独一地单位下三角 L 和上三角阵 U, 进而使得 A=LU[L,U]=lu(X):产生一个上三角矩阵U 和一个下三角矩阵L,使得 X=LU,X能够不为方阵[L,U,P]=lu(X):产生一个单位下三角矩阵L、一个上三角矩阵U 和互换矩阵P,PX=LUY=lu(X):假如 X 是满矩阵 ,将产生一个lapack’s地 dgetrf 和 zgetrf 地输出常式矩阵Y;假如 X 是稀少矩阵 ,产生地矩阵Y 将包含严格地下三角矩阵L 和上三角矩阵U,这两种状况下,都不会有互换矩阵PX=[6 2 1 -1;2 4 1 0;1 1 4 -1;-1 0 -1 3][L U]=lu(X)[L U P]=lu(X)Y=lu(X)(2)、正交分解(qr )对于矩阵 A( n*n ),假如 A 非奇怪 ,则存在正交矩阵 Q 和上三角矩阵 R,使得 A 知足关系式 A=QR, 而且当 R 地对角元都为正时 ,QR 分解是独一地[Q,R]=qr(A) :产生一个与 A 维数相同地上三角矩阵R 和一个正交矩阵Q,使得知足A=QR[Q,R,E]=qr(A):产生一个互换矩阵E、一个上三角矩阵R 和正交阵[Q,R]=qr(A,0) :对矩阵 A 进行有选择地QR分解 ,当矩阵 A 为 m*n 前 n 列地正交矩阵QR=qr(A):只产生矩阵R,而且知足R=chol(A’*A)Q,这三者知足 AE=QR 且m>n, 那么只会产生拥有A=[17 3 4;3 1 12;4 12 8] [Q R]=qr(A)[Q R E]=qr(A)[Q R]=qr(A,0)R=qr(A)[Q,R]=qrdelete(A,j):去除第[Q,R]=qrdelete(A,j,x):在第j 列求 QR分解j 列插入 x 后求QR分解(3)、特点值分解(eig)[V,D]=eig(X):V 是以矩阵X 地特点向量作为列向量构成地矩阵,D 是矩阵X 地特点值构成地对角阵 ,知足XV=VD[V,D]=eig(A,B):对矩阵 A、B 做广义特点值分解 ,使得 AV=BVDA=magic(4)[V D]=eig(A)Z=A*V-V*DB=[17 3 4 2;3 1 12 6;4 12 8 7;1 2 3 4][V D]=eig(A,B)Z=A*V-B*V*D(4)、 Chollesky 分解( chol)当矩阵A( n*n )对称正准时,则存在独一地对角元素为正地上三角矩阵R,使得 A=R’*R,当限定 R 地对角元素为正地时候 ,该分解是独一地当矩阵 A 为非正定阵时 ,会提示犯错A=[4 -1 1;-1 4.25 2.75;1 2.75 3.5]R=chol(A)R'*R %=AA=[0 4 0;3 0 1;0 1 3]R=chol(A) %报错 ,A 为非正定阵(5)奇怪值分解(svd)[U,S,V]=svd(X):与矩阵 X 维数相同地对角阵 S、正交矩阵 U 和正交矩阵 V,使得知足 X=USV’[U,S,V]=svd(X,0):X 为 M*N 矩阵 ,当 M>N 时 ,生成地矩阵 U 只有前 N 列元素被计算出来 ,而且 S为 N*N 矩阵X=[1 2 3;4 5 6;7 8 9][U S V]=svd(X)X=[1 2 3;4 5 6;7 8 9;10 11 12][U S V]=svd(X)X=[1 2 3;4 5 6;7 8 9;10 11 12ckl[U S V]=svd(X,0)Schur分解(正交阵和schur阵)[U,T]=schur(A): A=UTU’schur阵是主对角线元素为特点值地三角阵5、矩地一些特别理size(A):求矩 A 地行数、列数diag(A):求出矩 A 地角元素repmat(A):将矩 A 作位 ,成 m*n 矩 ,此中每个元素都是cat(k,A,B): k=1 归并后形如 [A;B]( A,B 列数相等); k=1 归并后形如(1)、矩地A 矩[A,B]( A,B 行数相等)reshape(X,M,N) :将矩X 地全部元素分派到一个M*N地新矩,当矩X 地元素不是M*N ,返回reshape(X,M,N,P,⋯):返回由矩X 地元素成地M*N*P*⋯多矩,若果M*N*P*⋯与X 地元素数不一样 ,将返回reshape(X,[M,N,P,⋯]) :与上一条相同A=rand(4,2)reshape(A,2,4)reshape(A,[2,2,2])用冒号:A=[1 2 3 4;5 6 7 8;9 10 11 12];B=ones(2,6);B(:)=A(:)(2)、矩地向rot90(A) : A 按逆旋rot90(A,K) : A 按逆旋filpud(X) :将 X 上下翻90 度90*K度fliplr(X) :将X 左右翻flipdim(X,DIM) :将 X 地第 DIM 翻X=[1 4;2 5;3 6]rot90(X)rot90(X,-1)flipud(X)fliplr(X)flipdim(X,2)%左右翻6、特别矩地生成(1)、零矩和全 1 矩地生成A=zeros(M,N):生成 M*N 地零矩A=zeros(size(B)):生成与 B 同型地零矩A=zeros(N):生成 N 零矩仿真全 1 矩地生成与零矩地生成似,使用ones 函数A=zeros(4,5)B=[12345;23456;98765;87654]A=zeros(size(B))A=zeros(5)C=ones(5,6)C=ones(3)(2)、角矩地生成A=diag(V,K): V 某个向量 ,K 向量 V 偏离主角地列数,K=0 表示 V 主角 ,K>00 表示 V 在主对角线以上,K<0 表示 V 在主对角线以下A=diag(V):相当于K=0v=[1 9 8 1 6]diag(v,1)diag(v)(3)、随机矩阵地生成rand(N) :生成 N*N 地随机矩阵 ,元素值在 (0.0,1.0) 之间rand(M,N)randn(N) :生成 N*N 地随机矩阵 ,元素之听从正态散布N(0,1)randn(M,N)rand(5)randn(5)(4)、范德蒙德矩阵地生成A=vander(V):有 A(I,j)=v(i)n-jv=[1 3 5 7 9]A=vander(v)(5)、魔术矩阵地生成它是一个方阵 ,方阵地每一行,每一列以及每条主对角线地元素之和都相同( 2 阶方阵除外)magic(N):生成N 阶魔术矩阵 ,使得矩阵地每一行,每一列以及每条主对角线元素和相等,N>0(N=2 除外)magic(2)magic(3)magic(4)(6)、 Hilbert 矩阵和反Hilbert 矩阵地生成Hilbert 矩阵地第i 行、第 j 列地元素值为1/(i+j-1), 反 Hilbert 矩阵是 Hilbert 矩阵地逆矩阵hilb(N) :生成 N 阶地 Hilbert 矩阵invhilb(N) :生成 N 阶地反 Hilbert 矩阵A=hilb(5)B=invhilb(5)C=A*Brandpem(n):随机摆列hess(A): hess矩阵pascal(n): Pascal矩阵hankel(c): Hankel 矩阵wilkinson(n): wilkinson 特点值测试矩阵blkdiag(a,b,c,d):产生以输入元素为对角线元素地矩阵注: diag 函数地输入参数只好有一个(能够为向量)compan(u):友矩阵hadamard(n): hadamard 矩阵toeplitz(c,r):托布列兹阵数组及其运算1、数组寻址和排序(1)、数组地寻址A=randn(1,10)A(4) %接见 A 地第 4 个元素A(2:6)%接见 A 地第 2 到 6 个元素A(6:-2:1)A([1 3 7 4])%接见 A 中 1、3、 7 和 4 号元素A(4:end) %end 参数表示数组地结尾(2)、数组地排序sort(X):将数组X 中地元素按升序排序X 是多维数组时 ,sort(X)命令将 X 中地各列元素按升序排序X 是复数时 ,sort(X)命令将 X 中地各个元素地模abs(X)按升序排序X 是一个字符型单元数组,sort(X)命令将 X 中地各列元素按ASCII码升序排序Y=sort(X,DIM,MODE):DIM 选择用于摆列地维,MODE 决定了排序地方式(’ascend’升序 ,’descend’降序) ,该命令生成地数组Y与 X 是同型地X=[3 7 5;0 4 2]sort(X,1) %纵向升序排序sort(X,2) %横向升序排序sort(2)2、数组地基本数值运算(1)、加减法(与矩阵加减法相同)X=[1 4 7]Y=[2 5 8]Z=X-YV=X+Y(2)、数组地乘除法乘法用“ .* ”: X、 Y 有相同维数 ,X.*Y 表示 X 和 Y 中单个元素之间地对应乘积除法用“ ./ ”:注意“ ./ ”和“ ”完整不一样X=[10 52 96 12 56]Y=[2 26 3 4 8]Z=[10 52 96 12 56 42]Z1=X.*YZ2=X.*Z%报错 ,维数问题Z3=X./Y%Z3=5,2,32,3,7Z4=X.\Y %Z4=0.2,0.5,0.0313,0.3333,0.1429Z5=X.\Z%报错 ,维数问题(3)、数组地乘方两个数组之间地乘方X=[1 4 7]Y=[2 5 8]Z=X.^Y乘方运算时指数为标量X=[3 6 9]Z=X.^3乘方运算时底数为标量X=[456789]Z=3.^X数组和矩阵也能够进行exp、 log、 sqrt 等运算 ,是对每个对应元素进行运算3、数组地关系运算小于( <),小于等于( <=) ,大于( >),大于等于( >=) ,等于( ==) ,不等于( ~=) ,结果为 1, 则关系式为真 ,结果为 0,则关系式为假%rem(X,n),求余函数 ,X 为被除数 ,n 为除数M=magic(7)N=(rem(M,3))N=(rem(M,3)<=1)N=(rem(M,3)==1)N=(rem(M,3)>=1)4、数组地逻辑运算,非运与( &),或( | ),非( ~),此中与、或能够比较两个标量或许两个同阶数组(或矩阵)算时针对数组(或矩阵中地每一个元素),当逻辑为真则返回1,当逻辑为假则返回0M=[1 1 0;0 1 0;1 0 0]N=[1 0 1;1 1 1;0 0 0]M|NM&N~Ncat:串接flipdimfliplrflipudkron:积数组permute:重组repmatreshaperot90稀少型矩阵1、稀少矩阵地生成(1)、 speye 函数:生成单位稀少矩阵speye(size(A))speye(M,N) :维数为M 和N 中较小地一个speye(N)A=eye(10)speye(size(A))speye(7,6)speye(5)(2)、 sprand 函数:生成随机稀少矩阵(元素听从0-1 之间地随机散布)R=sprand(S):产生与稀少矩阵S 构造相同地稀少矩阵,但它地元素都是0-1 上地随机数Rsprand(M,N,D) :产生一个M*N 地随机稀少矩阵R,它地非您元素地个数近似为M*N*D, 注意D 地值在 0-1 之间且不要过大v=[3 5 6 2 1 9 6 5 5 6]S=diag(v)R=sprand(S)R=sprand(10,10,0.08)(3)、 sparse 函数S=sparse(X):将矩阵 X 转变为稀少矩阵SS=sparse(I,j,s,m,n,nzm):生成 m*n 地稀少矩阵 S,向量 s 地元素散布在以向量i 地对应值和向量 j 地对应值为坐标地地点上 ,此中 nzm=length(s)S=sparse(I,j,s):生成 m*n 地稀少矩阵S,向量 s 地元素散布在以向量i 地对应值和向量 j 地对应值为坐标地地点上,此中 m=max(i),n=max(j)S=sparse(m,n):是 sparse([],[],[],m,n,0)地简化形式i=[6 2 7 7 4 1 2 5]j=[1 3 2 7 2 8 3 2]s=[8 3 7 7 1 7 0 2]X=diag(s,-2)S=sparse(X)S1=sparse(i,j,s,10,10,7)%报错 ,nzmax=length(s)S1=sparse(i,j,s,10,10,8)S2=sparse(i,j,s,10,9)%默认 nzmax=length(s)S2=sparse(i,j,s)%m=max(i),n=max(j)2、稀少矩阵地操作(1)、 nnz 函数:用于求非零元素地个数nz=nnz(S):返回 S总非零元素个数D=nnz(S)/prod(size(S)):表示稀少矩阵S 中非零元素地密度v=[6 2 7 7 4 1 3 5]S=diag(v,-1)nz=nnz(S)D=nnz(S)/prod(size(S))(2)、 sponse 函数R=sponse(S):生成一个与稀少矩阵 S 构造相同地稀少矩阵 R,可是在矩阵 S 中地非零元素地地点上用元素 1 替代S=sprandsym(10,0.05)R=spones(S)(3)、 spalloc 函数S=spalloc(m,n,nzm):生成一个全部元素都为0 地m*n阶稀少矩阵,计算机利用这些空间来存储 nzm 个非零元素n=3;v=sprand(n,1,0.33) s=spalloc(n,n,1*n)%生成%分派3*13*3地稀少列向量地空间 ,最后能够储存 3 个非零元素for j=1:ns(:,j)=(v)%v 为含有一个非零元素地稀少列向量end(4)、 full 函数S=full(X):将稀少矩阵(三元组表示)变换为满矩阵(矩阵表示)s(6,1)=8;s(4,2)=1;s(5,3)=60;s(6,2)=57;s(1,7)=25;s(3,8)=37;full(s)(5)、 find函数I=find(X):返回矩阵X 地非零元素地地点,如 I=find(X>100) 返回X 中大于100 地元素地地点[I,J]=find(X) :返回 X 中非零元素所在地行I 和列 J 地详细数据[I,J,V]=find(X):除了返回I 和 J,还返回矩阵中非零元素地值V注:find(X) 和 find(X~=0)会产生相同地I 和 J,可是后者会生成一个包含全部非零元素地点地向量S(10,50)=82;S(32,14)=82;S(251,396)=25;I=find(S)[I J]=find(S)[I J V]=find(S)(6)、 issparse 函数issparse(S):返回值为 1 说明矩阵S 是一个稀少矩阵,返回值为0 时说明矩阵S 不为稀少矩阵v=[6 2 7 7 4 1 3 5]S=diag(v,2)R=sparse(S)N=issparse(S) %返回 0,不为稀少矩阵Y=issparse(R) %返回 1,为稀少矩阵。
MATLAB应用 MATLAB数据及运算
第2章MATLAB数据及运算2.1 变量及其操作一、变量命名规则1.变量名、函数名对字母大小写是敏感的myfile与MyFile表示不同的变量sin是MATLAB定义的正弦函数名,但SIN、Sin都不是2.变量名的第一个字符必须是英文字母3.变量名最多可包含63个字符(英文、数字和下划线)4.变量名中不能包含空格、标点my_exemple12是合法的变量名,12exemple、_exemple12、my exemple12、my.exemple12是非法变量名二、MATLAB默认的预定义变量每当MATLAB启动时,不经定义和赋值就会产生一些变量,称为MATLAB 默认的预定义变量这些变量都可以重新赋值。
但最好不要对这些变量名重新赋值例1 用键盘在MATLAB指令窗中输入以下内容epseps ——机器的浮点运算误差限。
PC机上eps的默认值为2.2204×10-16,若某个量的绝对值小于eps,则可以认为这个量为0。
例2 用键盘在MATLAB指令窗中输入以下内容1/0,1.e1000,log(0)Inf ——无穷大量+ ∞的MATLAB表示,也可以写成inf 。
同样地,- ∞可以表示为- Inf 。
在MATLAB 程序执行时,即使遇到了以0 为除数的运算,也不会终止程序的运行,而只给出一个“除0”警告,并将结果赋成Inf ,这样的定义方式符合IEEE 的标准。
从数值运算编程角度看,这样的实现形式明显优于C语言。
例3 用键盘在MATLAB指令窗中输入以下内容0/0,inf/inf,inf*0注意在MATLAB 中,即使遇到以0为除数的运算,程序也不会终止运行。
这时只给出一个警告,并将结果赋给inf 或NaNNaN —— 不定式( not a number ) ,通常由 0 / 0 运算、Inf / Inf 及其他可能的运算得出。
NaN 是一个很奇特的量,如 NaN 与Inf 的乘积仍为 NaN 。
二.数值数组及其运算(matlab)
例2.2 基本数据类型
clear v=2000; v_s=size(v); n='green'; n_s=size(n); house={v;n} %1*1数值数组 %数值数组的大小 %字符串数组 %字符串数组的大小 %元胞数组
演示
2.1.1 一维数组的创建
逐个元素生成法 冒号生成法
通用格式为:x=a : inc : b 冒号不能省,且必须在英文状态下输入; 步长inc可取正数或负数,缺省时默认值为1。
2.2 二维数组的创建和寻访
二维数组结构和矩阵相同,当带线 性变换的含义时,数组就是矩阵。
例2.5 二维数组的基本操作
A = [ 1 2 3 ; 4 , 5 , 6 ]; %输入二维数组A B = [ 1 2 4 ; 8 16 32 ]; %输入二维数组B %C = A + B %二维数组C的元素等于A、B对应元素的和 %D = log2 ( B ) %对B的每个元素求以 2 为底的对数构成数 %组D
A = [ 1 4 7 ; 2 5 8 ; 3 6 9 ];
a5=A([1 3;2 6]) %取单下标为1、3、2、6的元素构成子数组 %a5(2×2) %a6=A([1 3 2 6]) %取单下标为1、3、2、6的元素构成子数组 %a6 (1×4) %L1=logical([1 0 1])
演示
2.2.3 二维数组子数组的寻访和赋值(续)
2.1一维数组的创建和寻访
●
数学计算是MATLAB强大计算功能的体现。MATLAB的数学 计算分为数值计算和符号计算,其中符号计算是指使用 未定义的符号变量进行运算,而数值计算不允许使用未 定义的变量。 数值数组(Numeric Array)和数组运算(Array Operations)始终是MATLAB的核心内容。
第二章 MATLAB基础知识
2.2 数组及其运算
例 ascii_a=double(a) %将字符转换为相应的双精度值 ascii_a = Columns 1 through 13 84 104 105 115 32 105 115 32 97 110 32 101 120 Columns 14 through 19 97 109 112 108 101 46 例 char(ascii_a) %将双精度值转换为字符 ans = This is an example. 例 w=find(a>=‘a’&a<=‘z’); %查找所有小写字母的位置 ascii_a(w)=ascii_a(w)-32; %将小写字母ascii值转换为大写 char(ascii_a) %将双精度值转换为字符 ans = THIS IS AN EXAMPLE.
2.2 数组及其运算
2.2.2 数组的运算
运算 加 运算符 + 表达式 a+b
减 乘 除 幂 点乘 点除 点幂
*
/或\ ^ .* ./或.\ .^
a-b a*b
a/b或a\b a^b a .* b a ./ b或a.\b a.^b
2.2 数组及其运算
例 a=3 14 7 1 4 9 3 6 10 b=2 8 3 2 10 0 11 2 7 a+b ans= 5 22 10 3 14 9 14 8 17
2.2 数组及其运算
高维数组的创建
直接通过“全下标”元素赋值方式创建高维数组; 由若干个同样大小的低维数组组合成高维数组; 由函数ones、zeros、rand、randn直接创建标准
高维数组;
借助cat、repmat、reshape等函数构造高维数组。
Am
第2章 MATLAB数据及其运算_习题答案
第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门课成绩,应采用的正确命令是()。
matlab——第三章 数值数组及其运算
sqrt(A) 对A的各元素求平方根
3.6.4 标准数组生成函数
指令 diag eye magic ones 含义 指令 含义
产生对角形数据 rand 产生均匀分布随机数组 randn 产生正态分布随即数组 产生单位数组 zeros 产生全0数组 产生魔方数组 产生全1数组
>> ones(3) ans = 1 1 1 1 1 1 1 1 1 >> ones(1,2) ans = 1 >> magic(3) ans = 8 1 6 3 5 7 4 9 2
3.6 数组运算和矩阵运算
3.6.1 标量-数组运算
>>g = 1 2 5 6 9 10 >> g-2 ans = -1 0 3 4 7 8 > >2*g-1 ans = 3 4 1 3 5 7 7 8 9 11 13 15 11 12 17 19 21 23 >> 2*g/5+1 ans = 1 2 1.4000 1.8000 2.2000 5 6 3.0000 3.4000 3.8000 9 10 4.6000 5.0000 5.4000
啊(
>>A=zeros(2,4) A= 0 0 0 0 0 0 0 0 >>A(:)=1:8 %全元素赋值方式 A= 1 3 5 7 2 4 6 8 >>s=[2 3 5] %产生单下标数组行数组 s= 2 3 5 >>A(s) ans = 2 3 5
>>Sa=[10 20 30]' %Sa是长度为3的“列数组” Sa = 10 20 30 >>A(s)=Sa %单下标方式赋值 A= 1 20 30 7 10 4 6 8 >>A(:,[2 3])=ones(2) %把A的第2、3列元素全赋值为1 A= 1 1 1 7 10 1 1 8
MATLAB第三章数值数组及其运算
行向量
如:array=[2, pi/2, sqrt(3), 3+5i]
x=[1,2,3,4,5都已知.如对 少量实验数据的处理可用此种方法.
4
(2) 冒号生成法: array=a: inc: b
<向量>
a---数组的第一个元素
inc---采样点之间的间隔, 即步长. 最后一个元素不一定等于b, 其大小为b’=a +inc*[(b-a)/inc]; 步长可以省略, 默认为 1; inc可以取正数或负数, 但要注意当取正时,要保证b>a, 数 组最后一个元素不超过b, 取负时b<a, 最后一个元素不小于b.
(2) 数值计算解法
delt=0.01; x=0:delt:4;
y=exp(-sin(x));
sx=delt*cumtrapz(y);
plot(x,y, 'r', 'LineWidth', 6); hold on;
plot(x, sx, '.b', 'MarkerSize', 15);
plot(x, ones(size(x)), 'k');
a inc>0 b
b inc>0 a
特点: 等差数列
方便对数据之间的间隔(步长)进行控制.但要注意三个数值之 间的关系,可能得到空数组.另外要注意生成的数组的元素的 个数.如x=a: (b-a)/n :b (b>a)得到n+1个元素的数组.
5
x=1:5x=[1,2,3,4,5]
y=5:-1:1y=[5, 4, 3, 2, 1]
2. 在命令窗中输入MyMatrix
11
3.5 二维数组的标识 (mxn, m>1, n>1)
MATLAB运算基础(第2章)答案
实验01讲评、参考答案讲评未交实验报告的同学名单批改情况:问题1:不仔细,式子中出错。
问题2:提交的过程不完整。
问题3:使用语句尾分号(;)不当,提交的过程中不该显示的结果显示。
问题4:截屏窗口没有调整大小。
附参考答案:实验01 MATLAB 运算基础(第2章 MATLAB 数据及其运算)一、实验目的1. 熟悉启动和退出MATLAB 的方法。
2. 熟悉MATLAB 命令窗口的组成。
3. 掌握建立矩阵的方法。
4. 掌握MATLAB 各种表达式的书写规则以及常用函数的使用。
二、实验内容1. 数学表达式计算先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
1.1 计算三角函数122sin851z e=+(注意:度要转换成弧度,e 2如何给出) 示例:点击Command Window 窗口右上角的,将命令窗口提出来成悬浮窗口,适当调整窗口大小。
命令窗口中的执行过程:《MATLAB 软件》课内实验王平1.2 计算自然对数221ln(1)2z x x =++,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦(提示:clc 命令擦除命令窗口,clear 则清除工作空间中的所有变量,使用时注意区别,慎用clear 命令。
应用点乘方)命令窗口中的执行过程:1.3 求数学表达式的一组值0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=--提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。
命令窗口中的执行过程:1.4 求分段函数的一组值2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t 提示:用逻辑表达式求分段函数值。
命令窗口中的执行过程:1.5 对工作空间的操作接着显示MATLAB当前工作空间的使用情况并保存全部变量提示:用到命令who, whos, save, clear, load,请参考教材相关内容。
第02章_MATLAB数据及其运算_参考解答
第2章 MATLAB数据及其运算教材P37习题二1. 如何理解“矩阵是MATLAB最基本的数据对象”?答:MATLAB的数据类型有:数值型、字符型、结构体、单元、多维矩阵、稀疏矩阵等。
以上各种数据类型都以矩阵形式存在,所以矩阵是MATLAB最基本的数据对象。
2. 设A和B是两个同维同大小的矩阵,问:(1) A*B和A.*B的值是否相等?(2) A./B和B.\A的值是否相等?(3) A/B和B\A的值是否相等?(4) A/B和B\A所代表的数学含义是什么?答:(1)不相等;(2)不相等;(3)不相等;(4) A/B=A*inv(B); B\A=inv(B)*A;3. 写出完成下列操作的命令。
(1)将矩阵A第2~5行中第1,3,5列元素赋给矩阵B。
(2)删除矩阵A的第7号元素。
(3)将矩阵A的每个元素值加30。
(4)求矩阵A的大小和维数。
(5)将向量t的0元素用机器零来代替。
(6)将含有12个元素的向量x转换成3×4矩阵。
(7)求一个字符的ASCII码。
(8)求一个ASCII码所对应的字符。
答:假设A=rand(5,5)%或假设A=[1,2,3,4,5; 6,7,8,9,10; 11,12,13,14,15; 16,17,18,19,20; 21,22,23,24,25](1) B=A(2:5,[1,3,5]) %或者 B=A(2:5, 1:2:5)(2) A(7)=[](3) A+30(4) size(A), ndims(A)(5) t=0:0.1:1, t(find(t==0))=eps(6) x=1:12, reshape(x,3,4)(7) abs('b') %或者double('b')(8) char(98) %或者setstr(98)4.下列命令执行后,L1、L2、L3、L4的值分别是多少?A=1:9; B=10-A;L1=A==B;L2=A<=5;L3=A>3 & A<7;L4=find(A>3&A<7);答:L1L2L3L4L1 =0 0 0 0 1 0 0 0 0L2 =1 1 1 1 1 0 0 0 0L3 =0 0 0 1 1 1 0 0 0L4 =4 5 65. 已知: 23100.7780414565532503269.5454 3.14−⎡⎤⎢⎥−⎢⎥=⎢⎥⎢⎥−⎣⎦A 完成下列操作:(1) 取出A 的前3行构成矩阵B ,前两列构成矩阵C ,右下角3×2子矩阵构成矩阵D ,B 与C 的乘积构成矩阵E 。
第五讲-MATLAB之数组运算
数组的算术运算运算运算符含义说明加 + 相应元素相加减 - 相应元素相减乘 * 矩阵乘法点乘 .* 相应元素相乘幂 ^ 矩阵幂运算点幂 .^ 相应元素进行幂运算左除或右除\或/ 矩阵左除或右除左点除或右点除 .\或./ A的元素被B的对应元素除【例】数组加减法 >>A = rand(3); >>B = rand(3); >>A+B, A-B, A*B >>A/B, A\B 【例】点幂“.^”>>a=1:6>>a=a.^2>>b=reshape(a,2,3) >>b=b.^2关系运算MATLAB提供了6种关系运算符:<、>、<=、>=、==、~ =(不等于)关系运算符的运算法则:1、当两个标量进行比较时,直接比较两数大小。
若关系成立,结果为1,否则为0。
2、当两个维数相等的矩阵进行比较时,其相应位置的元素按标量关系进行比较,并给出结果,形成一个维数与原来相同的0、1矩阵。
3、当一个标量与一个矩阵比较时,该标量与矩阵的各元素进行比较,结果形成一个与矩阵维数相等的0、1矩阵。
【例】建立5阶方阵A,判断其元素能否被3整除。
A = [24, 35, 13, 22, 63; 23, 39, 47, 80, 80; ...90, 41, 80, 29, 10; 45, 57, 85, 62, 21; 37, 19, 31, 88, 76] P = rem(A,3)==0 %被3除,求余逻辑运算Matlab提供了3种逻辑运算符:&(与)、|(或)、~(非)逻辑运算符的运算法则:1、在逻辑运算中,确认非零元素为真(1),零元素为假(0)。
2、当两个维数相等的矩阵进行比较时,其相应位置的元素按标量关系进行比较,并给出结果,形成一个维数与原来相同的0、1矩阵;3、当一个标量与一个矩阵比较时,该标量与矩阵的各元素进行比较,结果形成一个与矩阵维数相等的0、1矩阵;4、算术运算优先级最高,逻辑运算优先级最低。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
与复数相关的一些函数
real ( z ) abs ( z ) angle ( z ) conj ( z )
z = a + bi = reiθ
给出复数z的实部a = r cos θ 给出复数z的虚部b = r sin θ 给出复数z的模r = a 2 + b 2 b 给出复数z的相角θ = arctg a 给出复数z的共轭复数z
数值型数据
最常用的数据类型 建立方法:
a=1
建立double型数据a,值为1,转化,比如
b=uint8(a);
a转化为uint8类型(无符号整型,8位)赋值到b中,执行 结果a类型不变
a=uint8(a);
a转化为uint8类型
a=double(a);
a转化为double类型
字符串
建立:
使用单撇号’’括起来的字符序列,比如 str=‘This is a string’;
271.82 显示为 271.8200 2718.2 显示为 2.7182e+003 2.71828182845905 2.7183e+000 2.718281828459046e+000 2.7183 2.71828182845905 4005bf0a8b14576a + 2.72 1457/536
MATLAB数据及其运算
教学目的和要求
通过本节内容的学习,使学生掌握变量 的赋值、变量的管理、数据的输出格式; 掌握几种常用的数据类型及相关的操作 方法。
MATLAB的数据操作对象
MATLAB的基本数据单位是矩阵; 单个标量可以看成是矩阵的特例。
变量
变量命名
字母开头,包括字母、数字、下划线; 区分大小写;MATLAB提供的标准函数名以 及命令名都是小写字母。 不申明,不定义,拿来即用; 变量名长度不超过 63 ( Matlab6.5.1 版本 以上 ) (老版本只能31个) 可以用 namelengthmax 函数查看你正在使用的 matlab版本允许的变量名最多包含多少个字符
format short format long format short e format long e format short g format long g format hex format + format bank format rat
例子 使用不同的数据显示格式显示数字。 在MATLAB命令行中,键入下面的指令:
imag ( z )
实数
在采用IEEE浮点算法的计算机上,实数 的数值范围大致为10-308 ~ 10308 Matlab 中的数默认是双精度实数 (double),表示方法同 C 语言 MATLAB的数值采用习惯的十进制表示, 可以带小数点或负号。例如:
300 9.45 -10.1 1.27e3 0.001 1.2E-3
单元数据
建立
使用{ }括起来建立 a={1,’str’,[11,12;13,14]};
引用
用带有大括号下标的形式引用单元矩阵元素,如 a{1},a{2},a{3}; a{2}(1), a{2}(2), a{2}(3) a{3}(1,2), a{3}(2,2)
赋值
如a{3}(1,2)=5
本节重点总结
清除变量
clear命令
clear 清除matlab工作空间中保存的所有变量 clear a 清除变量a clear x y 清除变量x和y(x和y之间不能用逗号) clear all 清除matlab工作空间中所有的变量、函数和mex文件
内存变量保存
保存数据
save命令
save函数的使用
语法: save文件名 变量名 -append -ascii
字符串与数值的互换
str2num num2str
结构数据
建立
结构体.成员名=表达式
='Way'; student.age=26; student.grade=uint16(1);
建立结构变量student,包括三个成员名
引用
结构变量名.成员名
结构体操作
isstruct函数 %判断一个变量是否为结构体 fieldnames函数 %返回成员名 isfield函数 %判断某一名称是否为结构体的成员名 rmfield函数 %删除某一成员 getfield函数 %
MATLAB的数据类型
数值型
双精度(8字节) 单精度 带符号和无符号整型
字符串 结构体 单元cell 多维矩阵 稀疏矩阵
基本数值类型
数据类型 double single uint8 uint16 uint32 uint64 int8 int16 int32 int64 说 明 双精度数据类型 单精度数据类型 无符号8位整数 无符号16位整数 无符号32位整数 无符号64位整数 有符号8位整数 有符号16位整数 有符号32位整数 有符号64位整数 字节数 8 4 1 2 4 8 1 2 4 8
>> pi ans = 3.1416 >> format long >> pi ans = 3.14159265358979 >> format + >> pi ans = +
内存变量查阅、删除的指令
工作空间中驻留的变量查看
工作空间窗口显示 命令方式:who,whos
who 查阅matlab内存变量的简单信息 matlab whos 查阅matlab内存变量的详细信息
说 明 浮点数相对精度,定义为1.0到最近 浮点数的距离 MATLAB MATLAB能表示的实数的最大绝对值 MATLAB能表示的实数的最小绝对值 圆周率π的近似值3.1415926 复数的虚部数据最小单位 表示正无大,定义为1/0 非数,它产生于0× ∞,0/0,∞/∞ 等运算
realmax realmin pi
数的输出格式
数据输出格式控制
format函数使用 语法:format 格式符 只影响数据输出格式,不影响计算和存储 默认输出格式为short格式
指 format
令
说
明
示
例
默认的数据格式,同 short 格式一致 具有固定的显示格式,保留小数点后四位有效数 字,对于大于 1000 的数值,使用科学计数法表示 具有固定的 15 位有效数字 具有 5 位有效数字的科学计数法表示 具有 15 位有效数字的科学计数法表示 紧凑的显示方法,在 format short 和 format short e 中自动选择数据的显示格式 紧凑的显示方法,在 format long 和 format long e 中自动选择数据的显示格式 使用十六进制的数据形式表示 在使用该格式显示大矩阵时,分别使用正号、负 号或者空格显示矩阵元素中的正数、负数或者 0 使用金融的数据显示方法,小数点后只有两位有 效数字 使用近似的分数表示数值
i,j inf 或 Inf NaN或 nan
复数单位i,j的 说明
复数单位:
i = j = −1
z2=5-6*j
复数的输入: z1=3+4*i
M atlab 中 复 数 运 算 不 需 要 特 殊 处 理 , 可以直接进行,如: z1 + z 2 z1* z 2 z1 ^ 3 , , z1 − z 2 z1 / z 2
字符串操作
获取字符ASCII值
double函数或者abs函数; double(‘a’); %输出字符a的ASCII值
ASCII转化为字符输出
char函数 char(63); %输出ASCII码63代表的字符
字符串
字符串操作
执行字符串内容
eval函数 eval(‘t=1’); %将字符串‘t=1’作为MATLAB语句 执行,即上面语句的执行结果为将1赋值给变量t
变量和语句(命名、赋值)
变量命名 赋值语句 变量的建立、删除、保存等操作命令
数据的输出形式 数据类型及相应的操作方式
数值型 字符型 结构型 单元
赋值语句
变量=表达式 表达式 其中表达式是用运算符将有关运算量连接起 来的式子,其结果是一个矩阵。 前者将表达式的值赋值给=前的变量,后者 将表达式的值赋值给默认变量ans
预定义变量
在MATLAB工作空 常 量 间 中 , 还 驻 留 几 eps 个由系统本身定 义的变量。 预定义变量有特 定的含义,在使 用时,应尽量避 免对这些变量重 新赋值。