二[1].数值数组及其运算(matlab)
- 格式:ppt
- 大小:973.50 KB
- 文档页数:94
(完整word版)matlab入门经典教程--第二章数值数组及其运算编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整word版)matlab入门经典教程--第二章数值数组及其运算)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整word版)matlab入门经典教程--第二章数值数组及其运算的全部内容。
第二章数值数组及其运算数值数组(Numeric Array)和数组运算(Array Operations)始终是MATLAB的核心内容。
自MATLAB5。
x版起,由于其“面向对象”的特征,这种数值数组(以下简称为数组)成为了MATALB 最重要的一种内建数据类型(Built—in Data Type),而数组运算就是定义在这种数据结构上的方法(Method)。
本章系统阐述:一、二维数值数组的创建、寻访;数组运算和矩阵运算的区别;实现数组运算的基本函数;多项式的表达、创建和操作;常用标准数组生成函数和数组构作技法;高维数组的创建、寻访和操作;非数NaN、“空”数组概念和应用;关系和逻辑操作.顺便指出:(1)本章所涉内容和方法,不仅使用于数值数组,而且也将部分地延伸使用于在其他数据结构中。
(2)MATLAB5。
x和6。
x 版在本章内容上的差异极微。
(3)MATLAB6.5版新增的两种逻辑操作,在第2。
13。
2节给予介绍。
2.1引导【例2。
1—1】绘制函数x=在1y-xe≤x时的曲线。
0≤x=0:0。
1:1y=x.*exp(-x)plot(x,y),xlabel(’x’),ylabel('y'),title(’y=x*exp(-x)’)x =Columns 1 through 70 0.1000 0。
2.Matlab数值数组及其运算2.1引导2.2⼀维数组的创建与寻访2.3⼆维数组的创建2.4⼆维数组元素的标识2.5⼆维数组的⼦数组寻访和赋值2.6执⾏数组运算的常⽤函数2.7数组运算和矩阵运算2.8多项式的表达和创建2.9多项式运算函数2.10标准数组⽣成函数和数组操作函数2.11数组构建技巧综合2.12⾼维数组的创建2.13关系运算2.14逻辑操作2.1 引导 2.1.1 function [ output_args ] = Untitled2( input_args )x=0:0.1:1y=x.*exp(-x)plot(x,y,'-r'),xlabel('x'),ylabel('y'),title('y=x*exp(-x)')gridend运⾏效果2.2 ⼀维数组的创建与寻访 2.2.1 ⼀维数组的⼦数组寻访和赋值 2.2.1.1 ⼦数组的寻访 2.2.2 ⼦数组的赋值2.3 ⼆维数组的创建 2.3.1 直接输⼊法 2.3.2 复数数组的另⼀种输⼊⽅式2.4 ⼆维数组元素的标识 2.4.1 "逻辑1"标识1 function [ output_args ] = Untitled2( input_args )2 A = zeros(2,5);%A 两⾏五列3 A(:)=-4:5%初始化4 L=abs(A)>3%找出所有绝对值⼤于3的元素5 islogical(L)%判断是否是逻辑数组6 X=A(L)%把下标给x7 end 2.4.2 逻辑数组与⼀般双精度数组的关系和区别1 function [ output_args ] = Untitled2( input_args )2 A = zeros(2,5);%A 两⾏五列3 A(:)=-4:5%初始化4 L=abs(A)>3%找出所有绝对值⼤于3的元素5 islogical(L)%判断是否是逻辑数组6 X=A(L)%把下标给x78 Num=[1,0,0,0,1;0,0,0,0,1];9 islogical(Num) %Num不是逻辑数组10 %Y=A(Num)%只有逻辑数组才可以这样⽤,所有这样错误11 end2.5 ⼆维数组的⼦数组寻访和赋值 2.5.1 不同赋值⽅式⽰例1 function [ output_args ] = Untitled2( input_args )2 A=zeros(2,4)%A初始化为2⾏4列3 A(:)=1:8%A从1到8赋值(每列从上到下,从左到右)45 s=[2356]6 A(s)%s是A的范围从上到下7 Sa=[10203076]'%'是⽤于赋值⽤8 A(s)=Sa910 A(:,[2,4])=ones(2)%第⼆列第4列都变成111 end2.6 执⾏数组运算的常⽤函数 演⽰pow2的数组运算性质1 function [ output_args ] = Untitled2( input_args )2 A=[1:4;5:8]3 pow2(A)%2的A次⽅4 end2.7 数组运算和矩阵运算 2.7.1 两种不同转置的⽐较1 function [ output_args ] = Untitled2( input_args )2 A(:)=1:63 A=A*(1+i)4 A_A=A.'%转置5 A_M=A'%转置(不加.后⾯的复数会变号)6 end2.8 多项式的表达和创建 2.8.1 求3阶⽅阵A的特征多项式1 function [ output_args ] = Untitled2( input_args )2 A=[111213;141516;171819];3 PA = poly(A)%求特征多项式4 PPA=poly2str(PA,'s')%把特征多项式转化为表达式5 end 2.8.2 由给定向量求多项式系数向量1 function [ output_args ] = Untitled2( input_args )2 R=[-0.5,-0.3+0.4*i,-0.3-0.4*i]3 P=poly(R)%求特征向量4 PR=real(P)%求对应的系数向量5 PPR=poly2str(PR,'x')%转化为表达式6 end2.9 多项式运算函数 2.9.1 1 function [ output_args ] = Untitled2( input_args )2 %分⼦第⼀项多项式系数分别为1*s^2+0*s+2 1*s+4 1*s+13 p1=conv([1,0,2],conv([1,4],[1,1]));4 %分⼦的多项式系数为 1*s^3 + 0*s^2 + 1*s + 15 p2=[1011];6 %q,r 分别是商和余多项式7 [q,r]=deconv(p1,p2);89 cq='商多项式为 ';cr='余多项式为 '10 %转化为表达式11 disp([cq,poly2str(q,'s')]),disp([cr,poly2str(r,'s')])12 end 2.9.2 polyval 与 polyvalm的区别1 function [ output_args ] = Untitled2( input_args )2 a=[123]; %多项式为x^2+2*x+33 A=[12;34]; %定义⼀个⼆维矩阵4 polyvalm(a,A)%求结果5 %其实相当于把A这个⼆维矩阵直接替换变量x,即求 A^2+2*A+3*E 这个矩阵多项式。
matlab 数组或运算Matlab是一种强大的数学软件,广泛应用于科学计算、数据分析和工程设计等领域。
它提供了丰富的数组和运算功能,使得处理和操作数据变得更加简单高效。
本文将探讨一些常见的数组操作和运算,并介绍它们在实际应用中的作用。
一、数组操作1. 创建数组在Matlab中,可以通过一些函数来创建数组,例如使用linspace函数创建等差数列,使用rand函数创建随机数组。
通过这些函数,我们可以方便地生成各种类型的数组,并对其进行后续操作。
2. 访问数组元素可以使用索引来访问数组中的元素。
Matlab中的索引从1开始,通过指定行和列索引,我们可以准确地定位到数组中的某个元素。
例如,A(2,3)表示数组A中第2行第3列的元素。
3. 修改数组元素可以通过赋值操作来修改数组中的元素。
只需使用等号将新的值赋给指定的元素即可。
例如,A(2,3) = 10将数组A中第2行第3列的元素修改为10。
4. 数组切片数组切片是指从一个数组中截取出一个子数组。
在Matlab中,我们可以通过指定切片的起始和结束索引,以及步长来完成切片操作。
切片操作可以用于提取数组中的特定部分,并进行后续处理。
5. 数组拼接可以使用函数如cat、horzcat和vertcat等来将多个数组拼接成一个更大的数组。
拼接操作常用于数据合并和数组扩展等应用中。
二、数组运算1. 数组加法和减法Matlab中的数组加法和减法运算是逐元素进行的。
即对应位置上的元素进行相加或相减。
这种运算方式使得数组运算更加直观和灵活。
2. 数组乘法和除法数组乘法和除法运算也是逐元素进行的。
可以使用“.*”和“./”来表示逐元素乘法和除法。
这种运算方式常用于矩阵运算和元素级别的数学计算。
3. 数组乘方和开方可以使用“.^”和“sqrt”函数来进行数组的乘方和开方运算。
这些运算操作可以对数组中的每个元素进行相应的计算。
4. 数组的统计运算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 。
第2章Matlab数据及其运算Matlab数据类型非常丰富,除数值型、字符型等基本数据类型外,还有结构体、单元等更为复杂的数据类型。
各种数据类型都以矩阵形式存在,矩阵是Matlab最基本的数据对象,并且矩阵的运算是定义在复数域上的。
2019/11/21Application of Matlab Language 22.2 Matlab 矩阵(数组)的表示⏹数组的概念⏹一维数组变量的创建⏹二维数组变量的创建⏹数组元素的标识与寻访⏹数组运算⏹多维数组2.2.1. 数组(array)的概念2019/11/21Application of Matlab Language 4⏹数组的分类⏹一维数组,也称为向量(vector) 。
行向量(row vector)、列向量(column vector)。
⏹二维数组(矩阵matrix)。
⏹多维数组。
有效矩阵:每行元素的个数必须相同,每列元素的个数也必须相同。
2.2.1. 数组(array)的概念2019/11/21Application of Matlab Language52.2.1、数组(array)的概念(续)行向量列向量a(2,1)=3a(1,2)=2b(3)=3c(2)=22019/11/21Application of Matlab Language 62.2.2、创建一维数组变量⏹第一种方法:使用方括号“[ ]”操作符【例2-1】创建数组(行向量)a=[1 3 pi 3+5i] >>a=[1 3 pi 3+5*i] %or a=[1, 3, pi, 3+5*i]a= 1.0000 3.0000 3.1416 3.0000 + 5.0000i 所有的向量元素必须在操作符“[ ]”之内;向量元素间用空格或英文的逗点“,”分开。
⏹第二种方法:使用冒号“:”操作符【例2-2】创建以1~10顺序排列整数为元素的行向量b 。
>>b=1:10b=1 2 3 4 5 6 7 8 9 102019/11/21Application of Matlab Language 7【例2-3】键入并执行c=1:2:10和d=1:2:9>> c=1:2:10c=1 3 5 7 9>>d=1:2:9d= 1 3 5 7 9利用冒号“:”操作符创建行向量的基本语法格式:x=Start:Increment:End⏹Start 表示新向量x 的第一个元素;⏹新向量x 的最后一个元素不能大于End ;⏹Increment 可正可负,若负,则必须Start>End ;若正,则必须Start<End ,否则创建的为空向量。