Matlab矩阵与函数.ppt

上传人:牧羊曲112 文档编号:6512028 上传时间:2023-11-08 格式:PPT 页数:47 大小:241.49KB
返回 下载 相关 举报
Matlab矩阵与函数.ppt_第1页
第1页 / 共47页
Matlab矩阵与函数.ppt_第2页
第2页 / 共47页
Matlab矩阵与函数.ppt_第3页
第3页 / 共47页
Matlab矩阵与函数.ppt_第4页
第4页 / 共47页
Matlab矩阵与函数.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《Matlab矩阵与函数.ppt》由会员分享,可在线阅读,更多相关《Matlab矩阵与函数.ppt(47页珍藏版)》请在三一办公上搜索。

1、2023/11/8,1,Matlab的基本运算,二零零八年十月,2,2023/11/8,二、Matlab的基本运算,本讲主要介绍如下内容:1.矩阵、变量与基本函数。2.矩阵、数组的基本运算与生成。3.矩阵的分解。4.多项式运算。,3,2023/11/8,2.1 矩阵、变量与基本函数,(1)矩阵的输入 1.a=1 2 3 4 5 6 2.a=1,2,3;4,5,6;3.a(1,1)=1,a(1,2)=2,a(2,3)=6;注:在2中的逗号可以省略。当一行输不完时可以用续行符“”.三维或多维矩阵可由二维矩阵逐步生成。,4,2023/11/8,2.1 矩阵、变量与基本函数,例如 a=1 2 3 4

2、4 5 5 6 7 8 7 4 4 3 1 2 3 3 4 4 5 5 6 6 7 7 若A,B均为n阶方阵则可定义三维矩阵C为C(:,:,1)=A;C(:,:,2)=B;另外还可用揞接方式生成新矩阵.,5,2023/11/8,2.1 矩阵、变量与基本函数,(2)Matlab的变量 变量:除了内存变量与函数变量外,还有局部变量和永久变量。常量:Matlab的常量包括:ans,eps(无穷小),realmax(最大实数),realmin(最小实数),pi(),inf(无穷大),NaN(不确定数),i,j(虚数单位),nargin,nargout(调用函数时变量数).,6,2023/11/8,2.

3、1 矩阵、变量与基本函数,(3)Matlab的取整函数与整数round(x)求最接近x的整数。如果x是一个向量,则适用于所有元素。fix(x)求0方向最接近x的整数。即负x向 上四舍五入,正x向下四舍五入。floor(x)求小于或等于x的最接近的整数。ceil(x)求大于或等于x的最接近的整数。rem(x,y)求整除x/y的余数。,7,2023/11/8,2.1 矩阵、变量与基本函数,gcd(x,y)求整数x和y的最大公因子。g,c,d=gcd(x,y)求g,c,d,满足g=x c+y d。lcm(x,y)求正整数x和y的最小公倍数,也能用于决定最小公因子。t,n=rat(x)由有理数t/n求

4、x的近似值,这里的t和n是整数,相对误差小于1e6。t,n=rat(x,tol)与上相同,但相对误差小于t o l。rat(x)求x的连续的分数表达式。,8,2023/11/8,2.1 矩阵、变量与基本函数,rat(x,tol)求带相对误差tol的x的连续的分数表达式。(4)Matlab的基本数学函数abs(x)求x的绝对值,即|x|。sign(x)求x的符号,如果是正的得1;负的得 1;零得0。sqrt(x)求x的平方根。,9,2023/11/8,2.1 矩阵、变量与基本函数,pow2(x,f)求x的f次方。把f 加到x的浮点格式下的指数上计算,是一种十分有效的运算。exp(x)求x的指数函

5、数。log(x)求x的自然对数,即ln x。log10(x)求x以10为底的对数。log2(x)求x以2为底的对数。,10,2023/11/8,2.1 矩阵、变量与基本函数,sin(x)求正弦x,x为弧度。cos(x)求余弦x,x为弧度。tan(x)求正切x,x为弧度。cot(x)求余切x,即1/(tan x),x为弧度。asin(x)求反正弦。acos(x)求反余弦。atan(x)求反正切。,11,2023/11/8,2.1 矩阵、变量与基本函数,atan2(x,y)求四象限反正切(x/y),其结果在,区间内。acot(x)求反余切。sec(x)求正割x,即1/(cos x)。csc(x)求

6、余割x,即1/(sin x)。asec(x)求asec x=arccos(1/x)。acsc(x)求acsc x=arcsin(1/x)。,12,2023/11/8,2.1 矩阵、变量与基本函数,sinh(x)求x双曲正弦。cosh(x)求x双曲余弦。tanh(x)求x双曲正切coth(x)求x双曲余切,即1/(tanh x)。asinh(x)求x反双曲正弦acosh(x)求x反双曲余弦,13,2023/11/8,2.1 矩阵、变量与基本函数,atanh(x)求=0.5 ln(1+x)/(1 x)。acoth(x)求=0.5 ln(x+1)/(x 1)。sech(x)求双曲正割x,即1/(co

7、sh x)。csch(x)求双曲余割x,即1/(sinh x)。asech(x)求acsch(x)求,14,2023/11/8,2.1 矩阵、变量与基本函数,(5)有关复函数的命令real(z)求z的实部。imag(z)求z的虚部。abs(z)求z的绝对值,即|z|。conj(z)求z的复数共扼,即angle(z)求z的相角。,15,2023/11/8,2.1 矩阵、变量与基本函数,(6)逻辑函数逻辑运算A&B 返回一个与A和B相同维数的矩阵。在这个矩阵中,A和B对应元素都为非零时,则对应项为1;有一个为零的项则为0。A|B 返回一个与A和B相同维数的矩阵。在这个矩阵中,A和B对应元素只要有一

8、个为非零,则对应项为1;两个矩阵均为零时,则为0。,16,2023/11/8,2.1 矩阵、变量与基本函数,A 返回一个与A和B相同维数的矩阵。在这个矩阵中,A是零时,则对应项为1;A是非零时,则对应项为0。xor(A,B)返回一个与A和B相同维数的矩阵。在这个矩阵中,如果A和B均为零或均为非零时,则对应项为0;如果A或B是非零但不是两者同时为非零时,则对应项为1。,17,2023/11/8,2.1 矩阵、变量与基本函数,函数a n y(x)如果x中的有一个元素为非零值,那么返回1;否则,返回0。a n y(A)对A进行列运算,根据相应列是否包含非零元素,返回一个带1和0的行向量。a l l(

9、x)如果所有的元素都是非零值,返回1;否则,返回0。a l l(A)对A进行列操作,根据相应列是否所有元素都为非零值,返回带1和0的一个行向量。,18,2023/11/8,2.1 矩阵、变量与基本函数,isnan(A)返回一个维数与A相同的矩阵,在这个矩阵中,对应A中有N a N处为1,其他地方为0。isinf(A)返回一个维数与A相同的矩阵,在这个矩阵中,对应A中有i n f处为1,其他地方为0。isempty(A)如果A是一个空矩阵,返回1;否则返回0。,19,2023/11/8,2.1 矩阵、变量与基本函数,isequal(A,B)如果A和B是相同的,即有相同的维数和相同的内容,则返回1

10、。isreal(A)如果A是一个不带虚部的实矩阵,则返回1;否则,返回零。isfinite(A)返回一个与A维数相同的矩阵。在这个矩阵中,A中元素是有限的,则对应元素为1;否则,为零。,20,2023/11/8,2.1 矩阵、变量与基本函数,iscell(x)如果x是一个细胞矩阵,返回1;否则为0。isfield(x)如果x在一个结构中是一个域,返回1;否则为0。isfinite(x)返回一个与x相同大小的向量,这个x包含有限元的位置为1,其他位置为0。,21,2023/11/8,2.1 矩阵、变量与基本函数,islogical(x)如果x是一个逻辑向量,返回1;否则为0。isnumeric(

11、x)如果x是一个数值向量,返回1;否则为0。isstr(x)如果x是一个字符串,返回1;否则为0。isstruct(x)如果x是一个结构,返回1;否则为0。,22,2023/11/8,2.1 矩阵、变量与基本函数,isobject(x)如果x是一个对象,返回1;否则为0。logical(x)返回一个可以使用的逻辑向量,例如逻辑索引或逻辑测试。,23,2023/11/8,2.2 数组、矩阵的运算与生成,数组的生成 i:k 创建从i开始、步长为1、到k结束的数字序列,即i,i+1,i+2,.,k。如果ik,M AT L A B则返回一个空矩阵,也就是。数字i和k不必是整数,该序列的最后一个数是小于

12、或等于k。i:j:k 创建从i开始、步长为j、到k结束的数字序列,即i,i+j,i+2j,.,k。对于j=0,则返回一个空矩阵。数字i、j和k不必是整数,该序列的最后一个数是小于或等于k。,24,2023/11/8,2.2 数组、矩阵的运算与生成,linspace(a,b)在区间a,b上创建一个有100个元素的向量,这100个数把整个区间线性分隔。linspace(a,b,n)在区间a,b上创建一个有n个元素的向量。这个命令和冒号表示形式相近,但是它直接定义了数据的个数。logspace(a,b)在区间 上创建一个有50个元素的向量,这50个数把整个区间对数分隔。特例:如果b=pi,则函数返回

13、一个在区间 上服从对数分布的向量。,25,2023/11/8,2.2 数组、矩阵的运算与生成,logspace(a,b,n)在区间 上创建一个有n个元素的数组,这n个数把整个区间对数分隔,特例情况同上。注:以上关于数组生成的命令经常用于作图,如:x=linspace(0,pi);%生成数组 y=sin(x);%计算函数 plot(x,y);%作图,26,2023/11/8,2.2 数组、矩阵的运算与生成,数组的应用矩阵的裁剪A(i,j,.,k)返回多维数组A中下标为(i,j,.,k)的元素值 A(:,j)返回二维矩阵A中第j列列向量。A(i,:)返回二维矩阵A中第i行行向量。A(:,j:k)返

14、回由二维矩阵A中的第j列,第j+1列,直到第k列列向量组成的子阵。,27,2023/11/8,2.2 数组、矩阵的运算与生成,A(i:k,:)返回由二维矩阵A中的第i行,第i+1行,直到第k行行向量组成的子阵。A(i:k,j:l)返回由二维矩阵A中的第i行到第k行行向量和第j列到第l列列向量组成的子阵。A(:)将矩阵A中的每列合并成一个长的列向量。A(j:k)返回一个行向量,其中的元素为A(:)中的从第j个元素到第k个元素。,28,2023/11/8,2.2 数组、矩阵的运算与生成,A(j1 j2.)返回一个行向量,其中的元素为A(:)中的第j1、j2.元素。A(:,j1 j2.)返回矩阵A的

15、第j1列、第j2列等的列向量。A(i1 i2.:,)返回矩阵A的第i1行、第i2行等的行向量。A(i1 i2.,j1 j2.)返回矩阵第i1行、第i2行等和第j1列、第j2列等的元素。,29,2023/11/8,2.2 数组、矩阵的运算与生成,矩阵的基本运算 矩阵的运算包括“+,-,*,/,;.*,./,.,.,等。+,-运算可以矩阵与常数运算。*为矩阵乘积。/,为右除与左除。./,.,.*,.等均为按位运算。,30,2023/11/8,2.2 数组、矩阵的运算与生成,矩阵的生成 ones(n)建立一个nn的1矩阵。ones(m,n,.,p)建立一个mn.p的1矩阵。ones(size(A)建

16、立一个和矩阵A同样大小的1矩阵。zeros(n)建立一个nn的0矩阵。zeros(m,n,.,p)建立一个mn.p的0矩阵。,31,2023/11/8,2.2 数组、矩阵的运算与生成,zeros(size(A)建立一个和矩阵A同样大小的0矩阵。eye(n)建立一个nn 的单位矩阵。注意eye命令只能用来建立二维矩阵。eye(m,n)建立一个mn 的单位矩阵。注意e y e命令只能用来建立二维矩阵。eye(size(A)建立一个和矩阵A同样大小的单位矩阵。,32,2023/11/8,2.2 数组、矩阵的运算与生成,随机数与随机矩阵的生成rand 产生在01之间均匀分布的随机数;每调用一次给一个新

17、的数值。rand+i*rand 产生一个复数随机数。rand(n)产生一个nn的矩阵,其元素为01之间均匀分布随机数。rand(m,n,.,p)产生一个mn.p的矩阵,其元素是01之间均匀分布的随机数。,33,2023/11/8,2.2 数组、矩阵的运算与生成,randn 产生零均值、单位方差的正态分布随机数。randn(n)产生一个nn的矩阵,其元素为零均值、单位方差的正态分布随机数。randn(m,n,.,p)产生一个mn.p的矩阵,其元素为零均值、单位方差的正态分布随机数。,34,2023/11/8,2.2 数组、矩阵的运算与生成,由已存在的矩阵生成新的矩阵 diag(A)生成一个由矩阵

18、A主对角线元素组成的列向量。主对角线总是从矩阵左上角开始。对于方阵来说它结束于矩阵的右下角。diag(x)生成一个n维的方阵,它的主对角线元素值取自向量x,其余元素的值都为0。,35,2023/11/8,2.2 数组、矩阵的运算与生成,diag(A,k)生成一个由矩阵A第k条对角线的元素组成的列向量。k=0为主对角线;k 0为上第k对角线。diag(x,k)生成一个(n+abs(k)维的方阵,该矩阵的第k条对角线元素取自向量x,其余元素都为零。关于参数k可参考上个命令。,36,2023/11/8,2.2 数组、矩阵的运算与生成,triu(A)生成一个和A大小相同的上三角矩阵。该矩阵的主对角线及

19、以上元素取自A中相应元素,其余元素都为零。triu(A,k)生成一个和A大小相同的上三角矩阵。该矩阵的第k条对角线及以上元素取自A中相应元素,其余元素都为零。命令triu(A,0)等同于命令triu(A)。,37,2023/11/8,2.2 数组、矩阵的运算与生成,tril(A)生成一个和A大小相同的下三角矩阵。该矩阵的主对角线及以下元素取自A中相应元素,其余元素都为零。tril(A,k)生成一个和A大小相同的下三角矩阵。该矩阵的第k条对角线及以下元素取自A中相应元素,负数k表示主对角线下的对角线。其余元素都为零。命令tril(A,0)等同于命令tril(A)。,38,2023/11/8,2.

20、2 数组、矩阵的运算与生成,fliplr(A)通过二维矩阵A的行元素按照b(i,j)=a(i,n-j+1)交换位置生成一个新矩阵。这里的lr是left-right的缩写。flipud(A)通过二维矩阵A的列元素按照b(i,j)=a(n-i+1,j)交换位置生成一个新矩阵。这里的ud是up-down的缩写。flipdim(A,dim)生成一个在dim维矩阵A内的元素交换位置的多维矩阵。命令flipdim(A,1)等同于命令flipud(A),命令flipdim(A,2)等同于命令fliplr(A)。,39,2023/11/8,2.2 数组、矩阵的运算与生成,rot90(A)生成一个由矩阵A逆时针

21、旋转90而得的新阵。也就是将矩阵A中的左上角的元素和右下角的元素交换位置。rot90(A,k)生成一个由矩阵A逆时针旋转k90而得到的新阵。repmat(A,m n.p)创建一个和矩阵A有相同元素的mn.p块的多维矩阵。,40,2023/11/8,2.2 数组、矩阵的运算与生成,reshape(A,m,n,.p)生成一个mn.p维的矩阵,它的元素以线性索引的顺序从矩阵A中取来。如果矩阵A中没有mn.p个元素,将返回一个错误信息。repmat(x,m n.p)创建一个mn.p的多维矩阵,所有元素的值都为标量x。使用该命令要比用命令x*ones(m n.)来创建同一个大矩阵的速度要快。,41,20

22、23/11/8,2.2 数组、矩阵的运算与生成,shiftdim(A,n)矩阵的维数移动n步。n为正数,矩阵向左移;n为负数,向右移。squeeze(A)返回没有空维的矩阵A。cat(dim,A,B)将矩阵A和B组合成一个d i m维的多维矩阵。permute(A,order)根据向量order来改变矩阵A中的维数顺序。ipermute(A,order)进行命令permute的逆变换。命令ipermute(permute(A,order),order)得到的结果就是矩阵A本身。,42,2023/11/8,2.2 数组、矩阵的运算与生成,希尔伯特矩阵hilb(n)生成一个nn的希尔伯特矩阵。in

23、vhilb(n)生成一个nn的希尔伯特矩阵的逆矩阵,其元素都为整数。托普利兹矩阵toeplitz(k,r)生成一个非对称的托普利兹矩阵,将k作为第1列,将r作为第1行。其余的元素与左上角相邻元素相等。toeplitz(c)用向量c生成一个对称的托普利兹矩阵。,43,2023/11/8,2.2 数组、矩阵的运算与生成,其他特殊矩阵compan(p)生成一个p多项式的友矩阵,也就是它的特征多项式是p。p是一个包含多项式系数的向量。gallery(n)生成一个在数字分析中有名的nn试验矩阵。比如,只有n=3和n=5时该矩阵才存在:n=3时是一个条件数差的矩阵;n=5时是一个有意义的特征值问题矩阵。,

24、44,2023/11/8,2.2 数组、矩阵的运算与生成,gallery family 从family族中返回一个矩阵。hadamard(k)返回一个阶数为n=2k的Hadamard矩阵。只有当n能被4整除时Hadamard矩阵才存在。hankel(x)返回一个由向量x定义的Hankel方阵。该矩阵是一个对称矩阵,它的元素为。第1列为向量x,反三角以下的元素为0。,45,2023/11/8,2.2 数组、矩阵的运算与生成,hankel(x,y)返回一个mn的H a n k e l矩阵,它的第1列为向量x,最后一行为向量y。magic(n)给出一个nn的魔方矩阵。pascal(n)返回一个nn的

25、P a s c a l矩阵,它是对称、正定的矩阵,它的元素由Pascal三角组成。它的逆矩阵的所有元素是整数。,46,2023/11/8,2.2 数组、矩阵的运算与生成,pascal(n,k)k=1时给出一个由下三角的holesky系数组成的Pascal矩阵。要注意的是通常情况下在ATLAB中使用上三角的Cholesky系数。k=2时是pascal(n,1)的变换和重新排列的形式。rosser 给出Rosser矩阵,这是一个经典对称特征测试问题,它的大小是88。,47,2023/11/8,2.2 数组、矩阵的运算与生成,vander(x)返回一个倒数第2列为向量x的Vandermonde矩阵。它的元素,n为向量x的长度值。wilkinson(n)返回一个mn的Wi l k i n s o n特征值测试矩阵。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号