Matlab经济应用.ppt
《Matlab经济应用.ppt》由会员分享,可在线阅读,更多相关《Matlab经济应用.ppt(74页珍藏版)》请在三一办公上搜索。
1、数组操作与代数运算,MATLAB应用2,内容,数组(向量、矩阵)的建立数组元素的查找常见的代数运算初等变换的实现线性方程组特征值、特征向量,3,向量、矩阵(数组)的建立,在MATLAB中最常用的基本数据结构就是一、二维数组,而标量反到是数组的特例(11数组)。下面我们先来讨论一下常规数组的特例。向量(一维数组)的建立矩阵(二维数组)的建立,4,向量、矩阵的直接输入,输入矩阵的最基本方法直接输入法直接输入矩阵的元素,用方括号表示矩阵,同一行元素间用空格或逗号分隔,不同行间用分号或回车符分隔。例如:A=1,2,3;4,5,6;7,8,9B=0 2 4,5,向量的快捷输入,利用冒号“:”生成等差数列
2、a=i:j%初值:终值a=i:k:j%初值:步长:终值利用linspace函数生成线性等分行向量a=linspace(i,j)%生成100个在i,j之间等间隔分布的元素a=linspace(i,j,n)利用logspace函数生成对数等分行向量a=logspace(i,j)%生成50个从10 i 10 j 对数等间隔元素a=logspace(i,j,n),6,矩阵的快捷生成,用函数建立矩阵ones(m,n);%生成mn的1矩阵zeros(m,n);%生成mn的零矩阵eye(n);%生成n阶单位矩阵rand(m,n);%生成mn的0,1均匀分布随机矩阵randn(m,n);%生成mn的标准正态分
3、布随机矩阵用小矩阵合成大矩阵(分块矩阵方法)A=A1,A2;A3,A4,7,标准数组生成函数,存取访问EXCEL文件中的数据,读出数据:N=xlsread(filename,sheet,range)写入数据:xlswrite(filename,M,sheet,range)示例:A=ones(2,4)xlswrite(d:tmp.xls,A,sheet1,A1:D2)B=xlsread(d:tmp.xls,sheet1,A1:D3),9,矩阵的调用、访问元素,MATLAB可以用矩阵的名称调用全矩阵,也可用下标访问矩阵的某个或某些元素(注意下标可以是向量)。例如:B=A;a=A(2,3)A(:,3
4、),A(2,:)A(1:4,1:3),A(1 3 5,2,4)可以用删除矩阵的元素,如:A(:,2)=,A=,10,数组元素的标识与访问,MATLAB数组元素通过数组下标来标识,起始下标为1;访问数组元素可通过数组名后跟圆括号内的下标(对)来实现。如:A(2),B(1,3),C(1,3,5,2),D(:,2)等。注意:数组的索引下标可以是普通向量和逻辑向量(分量为逻辑值,必须由关系运算产生),此时表示的是原数组的一个子数组。例:x=-3:5;L=abs(x)2;y=x(L)I=1,3,4;x=x(I),11,元素“全下标”与“单下标”表示法,二维以上数组在标识元素时,可采用“全下标”或“单下标
5、”方式。全下标表示法:就是完整的标出元素的的各维下标(逗号分隔),即指出是“第几行,第几列”的元素。单下标表示法:将数组的所有列按先左后右顺序,从上到下排成一列,进行编号,单下标就是按此顺序索引元素。(公式:l=(c-1)m+r)转换函数:ind=sub2ind(size(A),i,j)全下标=单下标I,J=ind2sub(size(A),ind)单下标=全下标,12,数组及元素的寻访与赋值总结,13,数组寻访、赋值示例,rand(state,0)%初始化,置0.x=rand(1,5)x(3:end)x(5:-1:1)%倒序x(find(x0.5)x(1 2 3 4 4 3 2 1)x(1 4
6、)=1 1A=zeros(2,5);A(:)=-4:5L=abs(A)3islogical(L)X=A(L),A=zeros(2,4)A(:)=1:8s=2 3 5;A(s)Sa=10 20 30A(s)=SaA(:,2 3)=ones(2),14,数组运算与矩阵运算,MATLAB提供的运算可分数组运算与矩阵运算.从结构形状看,二维数组与矩阵无区别.但,矩阵的运算有明确的线性代数规则;而数组运算是MATLAB自定义的,针对数组每个元素的分别操作,目的是便于数据管理、使用简便、自然、有效。数组运算也可引入到函数定义中,即 X=xij mn,则 f(X)=f(xij)mn。,15,数组运算(点运算
7、),为了能实现对应元素之间的四则运算、乘方等,MATLAB提供了一种“数组运算”,识别特征是在原有运算符前加一个点号“.”。主要有:.*、./、.、.、.等.例如:A=magic(4);B=2*ones(4);k=3;A.*B A./B,A.BA.B,A.k,k.AA.,16,数组中元素的查找,用find()函数可以查找数组中满足条件的元素下标。如:i=find(A=3)%返回数值为3元素的单下标。s,t=find(A=3)%返回数值不超过3元素的全下标。A(s,t)用比较运算获取逻辑下标来访问数组也可实现数组元素查找。I=(A=3)A(I)B=A(abs(A-2)=1),17,数组元素求和,
8、用sum(A,n)函数可以对数组元素沿第n维(增加)方向求和:sum(A)表示对一维数组求和;若A是多维数组时与sum(A,1)相同,即沿第一维方向求和(按列求和)。sum(A,2)表示对多维数组沿第二维方向求和(按行求和)。思考:若A为一矩阵,sum(sum(A)表示何意?,18,数组元素的最值,min()、max()函数可以求数组元素的最值:min(A)-若A是一维数组则求出最小值;若A是多维数组则分别求第一维方向上的最小值.min(X,Y)-比较同结构数组,求出对应元素的最小值.min(A,dim)-沿第dim维分别求出最小值.Y,I=min(.)-求出最小值外,还要该维上的相应下标.m
9、ax()用法与min类似,19,执行数组运算的常用函数,取整、求余函数以及坐标变换函数。,20,数组操作函数,关系运算,关系运算符主要用来对数与矩阵、矩阵与矩阵进行比较,并返回反映二者之间大小关系的由数0和1组成的矩阵。基本的关系运算符主要有:、=、=、=这6个。A=1,2;3,4,B=0,2;4,5C=A=BD=A=BA=B,逻辑运算,逻辑运算在计算机语言中是普遍存在的.在Matlab中包含与、或、非、异或4种基本的逻辑运算。逻辑表达式和逻辑函数的值应该为一个逻辑量“真”或“假”。MatLat系统在给出逻辑运算的结果时,以逻辑值“1”代表逻辑“真”,以“0”代表“假”,但在判断一个量是否为“
10、真”时,以0代表“假”,以任意的非零值代表“真”。Matlab的逻辑运算也是以矩阵为基本运算单元的。,23,关系、逻辑函数(1),24,对矩阵、数组进行操作、运算示例,【例】标准数组产生的演示。ones(1,2)randn(state,0)randn(2,3)E=eye(3)diag(E)diag(diag(E)A=diag(-5:5)B=diag(ones(10,1),1)C=diag(ones(10,1),-1)D=A+B+C,【例 2.8-2】reshape的使用演示。a=-4:4A=reshape(a,3,3)【例】数组转置、对称交换和旋转操作后果的对照比较。A.flipud(A)fl
11、iplr(A),MATLAB逻辑运算符(补充说明),A&B需分别判别A、的逻辑值,再进行“与”运算;A&B则先判A的值,若A假则不用再判B了。|与|均为逻辑“或”;但|支持数组运算(各对应元素间“或”运算),|只能对标量运算;A|B时,只要A真,就不再判B了。&、|称:数组逻辑与、数值逻辑或。&、|称先决逻辑与、先决逻辑或。,25,特殊数组简介,“非数数组”和“空”数组字符串数组元胞数组,27,“非数数组”和“空”数组,“非数”数组:数组元素允许为NaN(非数),在参与运算时,它在结果中将被传递。该类元素的意义是:真实记述0/0、/、0的后果;避免因0/0、/、0运算造成程序执行中断;在数据可
12、视化中,裁剪图形。“空”数组:某(几)维长度为零的数组。经常用于改变数组大小。如:a=,b=ones(2,2,0),A(:,1)=,28,字符串数组(字符型变量),字符串数组的内容是字符或字符串,它与数值型数组是不同的类型。可以用函数class(Arrary)判别数组Arrary的类型。可用赋值法直接建立字符串数组,只要将所赋值内容用单引号对括住,MATLAB 就识别为字符串。内存中存放一个字符需要2个字节,而存放一个数值标量需要8个字节。例:字符串建立与倒排序。a=This is a VIP test!,size(a)b=a(end:-1:1),size(b),a(12:14),常用字符串操
13、作,删除字符串结尾处的空格:S=deblank(C)输入空格符:blanks(n)产生n个空格将字符串进行大小写转换:upper(S)lower(S)将字符串作为命令执行:a=eval(字符串表达式)字符串比较操作:strcmp(stringl,string)返回0,1字符串中查找子串:findstr(str1,str2)返回短串的开始位置字符串替换操作:strrep(s1,s2,s3)用s3替换s1中的s2字符串与数值转换:int2str(A)、num2str(A)、str2num(S)abs(str)把串翻译成ASCII码;setstr(asc)把ASCII码翻译为串示例:a=Hello“
14、World”s1=upper(a)s2=lower(a),字符串操作示例,abs(a)a=This is a good man!s=a,blanks(2)deblank(s)strrep(s,good,bad)i=findstr(s,is)b=eval(1,2;3,4),应用举例,fid=fopen(data.txt,r)%打开数据文件返回文件句柄line=fgetl(fid)%读取文件句柄对应文件的一行字符k=findstr(line,cgg)%返回字符串中字串cgg位置s=length(k)line=fgetl(fid)k=findstr(line,cgg)s=length(k)fclos
15、e(fid)%关闭文件句柄对应的文件,32,单元数组(Cell arrary),单元数组的基本组分(Element)是单元(cell)。每个单元本身在数组中地位平等,它们只能以下标区分。单元中可以存放任何类型、任何大小的数组。同一单元数组的各单元内容允许存放类型、大小都不同数据。单元数组的维数定义不受限制,数组对各单元的编址方法也有“全下标”与“单下标”两种。对单元数组而言,单元与单元的内容是不同范畴的东西。访问单元靠“单元索引(cell index)”,即带圆括号的下标;而访问单元的内容靠“单元内容编址(content addressing)”,即用带花括号的下标访问单元内容。,33,直接赋
16、值法建立单元数组,一、按单元索引进行赋值如:A(1,1)=1,2;3,4,A(1,2)=abc二、按内容编址进行赋值如:B1,1=1,2;3,4,B1,2=abc注意:花括号用于访问单元的内容,圆括号()用于访问单元。如:e=A(1,1),f=A1,1,34,cell专用函数法建立单元数组,使用cell函数可为单元数组先定制外形,然后再赋值成为一个具体的单元数组。如:c=cell(2,3)c(1,1)=This does workc2,4=This works two注:cellfun可将一指定的函数应用到单元数组的所有单元上。如:cellfun(length,A)cellfun(isclas
17、s,A,char),35,矩阵的四则运算、乘方,矩阵相加减:A+B;A-B;矩阵相乘:A*B矩阵左除:AB;相当与求AX=B的解矩阵右除:B/A;相当与求XA=B的解方阵的乘方:Ap(p为0或正负整数)(注:p非整数时方阵的乘方涉及矩阵的特征值、特征向量*),36,其它常用矩阵运算,det(A)方阵的行列式A共扼转置 A.转置inv(A)逆矩阵orth(A)正交阵rank(A)秩trace(A)迹d=eig(A),V,D=eig(A)特征值、标准正交化的特征向量组、特征值poly(A)特征多项式,代数应用-行列式的试算,n阶行列式-4、5阶行列式-估计n阶行列式syms aA4=a,0,0,1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 经济 应用

链接地址:https://www.31ppt.com/p-6512092.html