版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章MATLAB数据及其运算陈文静主要内容MATLAB数据结构的特点变量及其操作MATLAB的矩阵表示MATLAB数据的运算字符串结构数据和单元数据矩阵是MATLAB最基本、最重要的数据对象,一列(一行)矩阵——向量矩阵的每个元素必须具有相同数据类型第一节数据特点数据对象——矩阵struct结构体cell单元数字字符稀疏矩阵Sparse第一节数据特点查阅cast函数数值数据doublesingle
int8int16int32uint8uint16uint32字符数据charstrings2.2.1变量与赋值(1)变量的命名:字母开头、区分大小写、变量名不超过63个字符、不能有中文(包括文件名)。尤其注意命令时,变量名不与已有的M文件、内建函数名称等重名。例:A,a,Myphoto,myphoto…第二节变量及其操作2.2.1变量与赋值
(2)赋值语句:两种格式a)变量=表达式b)表达式第二种,没有将表达式的值赋给一个指定的变量,因此系统默认将该值赋给ans。分号’;’的作用。注释的表示方法。%pi和i等是matlab预定义的变量第二节变量及其操作第二节变量及其操作2.2.1变量与赋值例如:计算表达式(5+cos(47*pi/180))/(1+7^(1/2)-2i)ans=1.1980+0.6572i(3)预定义变量。如ans计算结果的默认值eps机器零阈值浮点数2.2204e-16(1.1921e-07)i,j虚数单位pi圆周率的近似值
realmaxrealmin最大(小)正实数intmax最大整数inf,Inf无穷大NaNnan非数narginnargout函数输入/输出参数个数,等第二节变量及其操作数据类型有关narginnargout函数输入/输出参数个数(Numberoffunctioninput/outputarguments)function[masker]=circles(row,col,rc,cc,R)第二节变量及其操作function[masker]=circles(row,col,rc,cc,R)ifnargin==2rc=(row+1)/2;cc=(col+1)/2;R=sqrt((rc-rc)^2+(col-cc)^2);elseifnargin==4R=sqrt((rc-rc)^2+(col-cc)^2);elseifnargin~=5disp('Errorusing!NotenoughORtoomanyparameters.')end第二节变量及其操作nargoutfunction[dif,absdif]=subtract(y,x)dif=y-x;ifnargout>1disp('Calculatingabsolutevalue')absdif=abs(dif);end第二节变量及其操作Lasterr:存放最新的错误信息Lastwarm:存放最新的错误信息
Innermatrixdimensionsmustagree.
strfind(lasterr,'Innermatrixdimensions')了解:检查输入/输出参数有效个数的函数
narginchk,nargoutchk
error(nargchk(2,3,nargin))
error(nargchk(2,3,nargout))
2.2.2、变量的管理(1)变量的显示与删除who,whos,clear,(2)变量的存储和载入save,load第二节变量及其操作(1)内存变量的显示与删除第一种调用方式:who:显示当前工作空间中所有变量的简列表whos:列出变量的大小、格式等详细信息NameSizeBytesClassAttributesclear:清除工作空间中所有的变量第二种调用方式whos变量名:列出指定变量的详细信息clear变量名:清除指定的变量第三种调用方式,whos变量名*:列出一类变量的详细信息第二节变量及其操作(2)变量的存储和载入(*.mat)(1)savefilenamevariables[-append][format]将变量列表variables所列出的变量保存到磁盘文件filename中Variables变量之间只能用空格来分隔(非逗号)。未列出variables时,表示将当前工作空间中所有变量都保持到磁盘文件中。(2)save('filename','var1','var2')(3)loadfilename第二节变量及其操作[-ASCII]2.2.3数据的显示格式format格式符整数:无小数点形式显示;非整数,则输出形式有:formatshort:短格式(default)(5位定点数)99.1253formatlong:长格式(15位定点数99.12345678900000formatshorte:短格式e方式9.9123e+001formatlonge:长格式e方式9.912345678900000e+001formatbank:银行格式:元、角、分99.12formathex:十六进制格式第二节变量及其操作compactloose第三节MATLAB矩阵的表示1.矩阵的建立2.矩阵元素的访问、矩阵重排、拆分——矩阵尺寸的变化3.矩阵元素的删除Matlab
不用对矩阵维数和类型说明1、矩阵的建立(1)直接输入[…]。注意元素间隔和行间隔。(2)由文件生成mymatrix.m(3)小矩阵生成大矩阵(4)冒号法(1×N)。注意元素的个数问题。(5)函数法(特殊矩阵)(ones,zeros,rand等)A=ones(5);或A=ones(5,5);(6)网格矩阵(meshgrid)[A,B]=meshgrid(a,b)或[A,B]=meshgrid(a)(7)稀疏矩阵(spdiags)第三节MATLAB矩阵的表示矩阵生成不但可以使用纯数字(含复数),也可以使用变量(或者说采用一个表达式)。矩阵的元素直接排列在方括号内,行与行之间用分号(回车)隔开,每行内的元素使用空格或逗号隔开。大的矩阵可以用分行输入,回车键代表分号。》y=[245368]y=245368(1)直接输入法:命令行输入》a=1;b=2;c=3;》x=[5bc;
a*ba+cc/b]x=5.0002.0003.0002.0004.0001.500(2)M文件输入法>>mymatrix(3)建立大矩阵
yy=[y,eye(size(y));ones(size(y)),y]用线性等间距生成向量矩阵(start:step:end)》a=[1:2:10]a=13579其中start为起始值,step为步长,end为终止值。当步长为1时可省略step参数;另外step也可以取负数。linspace(a,b)linspace(a,b,n)a:(b-a)/(n-1):b用linspace产生a=[1:2:10]的结果B=linspace(1,9,5)(4)冒号表达式体会“:”法和linspace的差别调用特殊函数产生矩阵。注意事项:生成矩阵的维数,所调用函数的输入参数。函数法(ones,zeros,rand,randn等)A=ones(n);或A=ones(m,n)A=ones(5)与A=ones(5,5)等价;
可产生任意维矩阵产生一维矩阵:a=ones(1,n)或a=ones(n,1);(4)函数法网格矩阵(meshgrid)_产生二维矩阵
[A,B]=meshgrid(a,b)[A,B]=meshgrid(a,a)等价于[A,B]=meshgrid(a)输入a和b可以是一维、二维、n维,输出只能产生二维矩阵。例,[a,b]=meshgrid(ones(1,5),ones(1,5));[a,b]=meshgrid(ones(5),ones(5));[a,b]=meshgrid(ones(5,5,5),ones(5,5,5));等等(5)MATLAB的特殊命令函数法网格矩阵(meshgrid)_产生二维矩阵
[A,B]=meshgrid(a,b)
[X,Y]=meshgrid(-20:.1:20,-20:.1:20);>>y=sin(2*pi*X/16+2*pi*Y/16);>>imshow(y)(5)MATLAB的特殊命令函数法2、矩阵元素的访问、矩阵重排、矩阵拆分矩阵元素的访问矩阵的扩充矩阵的重组/重构获取子矩阵矩阵元素的删除第三节MATLAB矩阵的表示2、矩阵元素的访问、矩阵重排、矩阵拆分矩阵元素的访问矩阵的扩充矩阵的重组/重构获取子矩阵矩阵元素的删除第三节MATLAB矩阵的表示A:mxn的矩阵元素A(i,j)Index=(j-1)*m+i矩阵元素的访问A=[12;34];A(1,1)ans=1A(1,3)矩阵元素的序号(index)和下标(subscript)均可以引用矩阵元素第三节MATLAB矩阵的表示sub2indInd2sub
sub2ind(matrixSize,rowSub,colSub)[I,J]=ind2sub(siz,IND)2、矩阵的拆分
矩阵元素的访问矩阵的扩充矩阵的重组/重构获取子矩阵矩阵元素的删除第三节MATLAB矩阵的表示矩阵的扩充1)自动扩充矩阵元素A=[12;34];A(3,3)=10;A=12034000102)[]的使用C=[A;13];第三节MATLAB矩阵的表示2、矩阵的拆分矩阵元素的访问矩阵的扩充矩阵的重组/重构获取子矩阵矩阵元素的删除第三节MATLAB矩阵的表示矩阵的重组1)冒号重组A=[12;34];A(:)按列第三节MATLAB矩阵的表示2)reshape的使用第三节MATLAB矩阵的表示矩阵的重组2)reshape(A,m,n)m为行数,n为列数A=[123;345];B=reshape(A,6,1)B=reshape(A,3,2)B=A(:)2、矩阵的拆分矩阵元素的访问矩阵的扩充矩阵的重组/重构获取子矩阵矩阵元素的删除第三节MATLAB矩阵的表示第三节MATLAB矩阵的表示d)子矩阵的获取利用冒号表达式A为m*n维矩阵,A(:,j)表示第j列,A(:,j:j+k)表示第j列到j+k列A(i:i+k,j:j+k)表示第i~i+k行和第j~j+k列例:A=[123;234];B=A(:,1);B=A(:,1:2);2、矩阵的拆分矩阵元素的访问矩阵的扩充矩阵的重组/重构获取子矩阵矩阵元素的删除第三节MATLAB矩阵的表示第三节MATLAB矩阵的表示矩阵元素的删除利用空矩阵删除矩阵的元素例:A=[123;234];A(:,[23])=[];A(:,2)=[];A(1,1)=[];第三节MATLAB矩阵的表示两个常用的命令length和size例:A=[123234];length(A)A=[123;234];size(A)size(A,1)size(A,2)size(A,3)第四节数据运算算术运算基本算术运算乘方与开方点运算(与矩阵乘除相对应)常用数学函数关系运算
大于、小于、等等逻辑运算与、或、非a、基本算术运算——加、减、乘和除(+,-,*,/,\)1)矩阵加减:A+B,A-B(参与运算的矩阵必须同维)。2)矩阵乘法:A*B,B*A(A*B不等于B*A)
3)矩阵的左除与右除不同。(A/B不等于A\B)左除:X=A\BX=inv(A)*BAX=B,A、B行数必须相同右除:X=B/AX=B*inv(A)XA=BA、B列数必须相同
A为非奇异方阵help/\mldividemrdivide一、算术运算一、算术运算b、乘方与开方,矩阵必须为方阵A^xA^2=A*AA^1/2c、点运算.*,./,.\,.^查阅Help菜单:Functions->mathematics->arrays&matrices->operators->ArithmeticOperators一、算术运算常用的数学函数sincostanasinacosatansinhcoshtanh…sqrtloglog10log2pow2powersignabsmodremanglerealimageconjfixfloorceilroundgcdlcmdotcross(a+1)0x-(a+1)-aaxfloor(x)fix(x)ceil(x)floor(x)fix(x)ceil(x)常用数学函数Functions->mathematics->Elemeterymaths>查阅:remmod的区别?dotcross关系运算(RelationalOperators)
判断语句提供6种关系运算符,<,<=,>,>=,==,~=(true1false0)逻辑运算与(&),或(|),非(~)y1=(y>=0).*y;第四节数据运算找出A中3的倍数例2.4在[0,3π]区间,求y=sinx的值,要求:1、消去负半波,即(π,2π)区间内的函数值设为零2、(π/3,2π/3)和(7π/3,8π/3)区间内取值均为sin(π/3)。例2.4在[0,3π]区间,求y=sinx的值,要求:1、消去负半波,即(π,2π)区间内的函数值设为零2、(π/3,2π/3)和(7π/3,8π/3)区间内取值均为sin(π/3)。方法一、x=0:pi/100:3*pi;y=sin(x);y1=(x<pi|x>2*pi).*y;q=(x>pi/3&x<2*pi/3)|(x>7*pi/3&x<8*pi/3);
qn=~q;y2=q*sin(pi/3)+qn.*y1;例2.4在[0,3π]区间,求y=sinx的值,要求:1、消去负半波,即(π,2π)区间内的函数值设为零2、(π/3,2π/3)和(7π/3,8π/3)区间内取值均为sin(π/3)。方法2、x=0:3*pi/100:3*pi;y=sin(x);y1=(y>=0).*y;p=sin(pi/3);y2=(y>=p)*p+(y<p).*y1;例2.4在[0,3π]区间,求y=sinx的值,要求:1、消去负半波,即(π,2π)区间内的函数值设为零2、(π/3,2π/3)和(7π/3,8π/3)区间内取值均为sin(π/3)。方法3、x=0:pi/100:3*pi;y=sin(x);y1=y;y1(y<=0)=0;思考:采用法三的方式,解答要求2k=y1<=p;y2=k.*y1+~k.*p;其它常用关系与逻辑运算函数all若向量的所有元素非零,则结果为1any若向量中任何一个元素非零,则结果为1exist判断变量(文件)是否存在find找到矩阵中特定元素的位置和值此外:isemptyisglobalisinfisnanisfiniteissparseisstrxor第四节数据运算较高的版本bitand-Bit-wiseAND.bitcmp-Complementbits.bitor-Bit-wiseOR.bitmax-Maximumfloatingpointinteger.bitxor-Bit-wiseXOR.bitset-Setbit.bitget-Getbit.bitshift-Bit-wiseshift.exist判断变量(文件)是否存在exist(‘名称‘,’属性‘)exist(‘a’,’var’);exist(‘circles.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026资金会计面试题目及答案
- 感恩教育主题班会(完美)课件
- 网络直播风险控制年度述职报告
- 深井降水施工方案
- 物业电工安全管理
- 渠道工程监理实施细则
- 文化传播公司项目经理年度汇报
- 2026年护士条例试题及答案
- 春季校园防火安全知识
- 2026药店培训试题及答案
- 2026年湖南有色黄沙坪矿业有限公司招聘80人笔试参考题库及答案详解
- GA/T 1999.3-2025道路交通事故车辆速度鉴定方法第3部分:基于视频图像
- 2026四川凉山州越西县县属国有企业管理人员市场化选聘(第二轮)5人模拟试卷及答案详解(真题汇编)
- 建设电工劳务分包合同
- 2026年联通考试试题及答案
- 衍生金融工具(高教)第十三章 衍生工具的运用和发展
- 大疆创新人力资源管理实践完全指南
- 2026年河南省网格员招聘考试参考试题及答案解析
- 2026年城乡规划设计院招聘试题(含答案)
- 职工技师工作站工作制度
- AI人工智能在物理教学实践中的应用
评论
0/150
提交评论