MATLAB数值数组及其运算(精选)

合集下载

MATLAB数据及其运算

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 ;

第5章matlab 数组和数组运算(1)

第5章matlab 数组和数组运算(1)

如下面的总结是以M文件“sin.m”为例。

1,.1表示0.1,.2表示0.22,要想在Matlab中创建一个数组,用户只需先输入一个左方括号,然后输入每个数值并用空格(或逗号)隔开,最后用一个右方括号结束数组创建。

3,Matlab中,可以通过下标来访问单个数组元素。

例如x(1)是x的第一个元素,x(2)是x的第二个元素。

为了同时访问一块数据,Matlab提供了冒号如:x(1:4)。

这样得到x数组中第1个到第4个元素,括号中的“1:4”的意思是从1开始,然后加1计数直到4。

4. x(7:end)这条命令返回x数组的第7个元素到最后一个元素。

关键字end 表示x数组的最后一个元素5.引用数组元素时,可以通过控制递增顺序和步进值。

y(3:-1:1)表示从3开始,向下减1计数,到1结束。

y(2,2,7)表示从2开始,以步长为2计数,到7结束。

6.可以随机抽取数组中一个或多个元素的值,y([8 2 9 1])。

在这里,用到了另外一个数组[8 2 9 1],并按照希望的顺序提取数组y中的元素。

提取的第1个元素是y中的第8个值,第2个元素是y中的2个值,第3个元素是y中的第9个值,第4个元素是y中的第1个值。

实际上,[8 2 9 1]本身就是一个数组,它的作用是指定抽取地址。

抽取的索引地址可以相同,同一个数允许多次调用,用户可以随意地重新排列和复制数组元素,该特性使Matlab编程更具高效性。

7.sin.m例子中x的值可以有另外两种输入方法:(1)x = (0:0.1:1)*pi(2)x = linspace(0,pi,11)。

冒号表示法使用户能够直接指定数据点之间的增量,而不用指定数据点的个数;linspace函数法则使用户能够直接指定数据点的个数,而不用指定数据点之间的增量。

这两种方式生成的数组时等间隔分布的。

8.创建对数间隔的数组,用logspace函数实现。

如logspace(0,2,11)创建从100开始到102结束,包含11个值的数组。

2.Matlab数值数组及其运算

2.Matlab数值数组及其运算

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数组做统一加减乘除变换

标题: MATLAB中数组的统一加减乘除变换简介:在MATLAB中,对数组进行统一的加减乘除变换是非常常见的操作。

这些变换能够高效地处理大量数据,为数据分析和数值计算提供了强大的支持。

本文将详细介绍如何在MATLAB中对数组进行统一的加减乘除变换,包括基本的算术运算、向量化操作以及广播机制等。

正文:在MATLAB中,数组是一种重要的数据结构,它可以存储多个相同类型的元素。

对数组进行统一的加减乘除变换,意味着对数组中的每个元素执行相同的运算操作。

1. 基本算术运算MATLAB支持基本的算术运算符,如加号+、减号-、乘号*和除号/。

这些运算符可以直接应用于数组,实现对数组中每个元素的统一变换。

例如,假设有两个数组A和B,我们对它们进行加法运算:matlabA = [1, 2, 3];B = [4, 5, 6];C = A + B; % 结果 C = [5, 7, 9]同样地,减法、乘法和除法运算也可以这样进行:matlabD = A - B; % 结果 D = [-3, -3, -3]E = A * B; % 结果 E = [4, 10, 18] (对应元素相乘)F = A ./ B; % 结果 F = [0.25, 0.4, 0.5] (对应元素相除)2. 向量化操作在MATLAB中,向量化操作是一种高效的数据处理方式。

它允许你使用简单的算术运算符对整个数组进行操作,而不需要使用循环或迭代。

例如,如果你想给数组A中的每个元素都加上一个常数k,可以直接这样做:matlabA = [1, 2, 3];k = 10;A = A + k; % 结果 A = [11, 12, 13]同样地,你可以对整个数组进行乘法、除法等操作:matlabA = [1, 2, 3];k = 2;A = A * k; % 结果 A = [2, 4, 6]A = A / k; % 结果 A = [0.5, 1, 1.5]3. 广播机制在MATLAB中,广播机制允许你对不同大小的数组进行算术运算。

MATLAB数值计算功能(向量、矩阵、数组、稀疏矩阵)

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.1.1 一维数组的创建(续)
x1=linspace(0,2*pi,5) %从0到2*pi等分成5个点 %x2=logspace(0,2,3) %从1到100对数等分成3个点
演示
2.1.2 一维子数组的寻访和赋值


子数组寻访取决于x(index)中的下标; 下标index可以是单个数值或数组,但是 index的元素取值必须在[1,end]的范围 内,end为数组最大下标; 子数组赋值时,被赋值的子数组长度应 与送入的数组长度一致。
演示
逗号(,)和分号(;)的不同作用


在数组中——逗号分隔同一行中的各个 元素,分号分隔不同的行; 在指令行——逗号结尾的运行结果要显 示,分号结尾的运行结果不显示。
2.2.1 二维数组的创建(续)
2. 利用M文件中创建和保存数组 对于需要经常用到的,比较大的和复杂 的数组,可以专门建立一个M文件来创建 和保存数组。
演示
2.2.1 二维数组的创建
1. 直接输入法 (1)整个数组元素应用方括号([])括住; (2)每行内的元素间用逗号或空格隔开; (3) 行与行之间用分号或回车键隔开; (4)元素可以是数值或表达式。
例2.6 创建二维数组
a = 2 ; b = pi ; %给变量a、b赋值 c = [ 1 a+b*i ; sqrt(a) , sin(b) ] %创建二维数组c %M_r =[ 1 2 ; -1 1 ] , M_i = [5 , 3 ; 7 , 3 ] ; %创建二维数组M_r,M_i %M = M_r + i * M_i %以M_r、M_i为实部和虚部构造复数数组M
二.数值数组及其运算
数值数组及其运算

matlab——第三章 数值数组及其运算

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第2章 数值数组及向量化运算

Matlab第2章 数值数组及向量化运算

21 22 23 24
六. A ( 3 , 1:3 ) = 9 10 11
1.3:二维数组元素的标识和寻访 ——数值数组的创建和寻访
二维数组 A
1 2 3 4 5 6 7 8 9 10 11 12
单下标法 一、 A(:)=1:12 A= 1 2
二、A(8)
3 4
5 6
7 8
9 11 10 12
ans = 8
标, A=rand(3,3),然后根据A写出两个矩阵:一个对角阵 B,其相应元素由A的对角元素构成;另一个矩阵C,其对角元素全 为0,而其余元素与对应的A阵元素相同。(提示: diag diag)
作业提交电子版的word文档,由学习委员统一收齐,发到 smnsss@邮箱,文件命名为“学号+姓名+第几次作业”,比如 你叫魏川东,学号是1207200181,第1次作业,那文件名就应该是: “1207200181魏川东1”。本周六晚上12:00之前发到我的邮箱。
1.4:数组操作技法综合 ——数值数组的创建和寻访
b=diag(A) B=diag(b) b= 1 4 B= 1 0 0 4 D1=repmat(B,2,4) D1 = 1 0 1 0 0 4 0 4 1 0 1 0 0 4 0 4
%即ReplicateMatrix,复制和平铺矩阵 % 1 0 1 0 0 4 0 4 1 0 1 0 0 4 0 4
randn(2,3)
0
0
1
函数生成法
1.2:二维数组的创建 ——数值数组的创建和寻访
D= 1 0 0 0 1 0 0 0 1 diag(D) ans = 1 1 1 diag(diag(D)) ans = 1 0 0 0 1 0 0 0 1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档