文档库 最新最全的文档下载
当前位置:文档库 › 魔方矩阵

魔方矩阵

魔方矩阵
魔方矩阵

/*打印魔方阵。

所谓魔方阵是指这样的的方阵:

它的每一行、每一列和对角线之和均相等。

输入n,要求打印由自然数1到n^2的自然数构成的魔方阵(n为奇数)。

例如,当n=3时,魔方阵为:

8 1 6

3 5 7

4 9 2

魔方阵中各数排列规律为:

①将“1”放在第一行的中间一列;

②从“2”开始直到n×n为止的各数依次按下列规则存放:每一个数存放的行比前一个数的行数减1,列数同样加1;

③如果上一数的行数为1,则下一个数的行数为n(最下一行),如在3×3 方阵中,1在第1行,则2应放在第3行第3列。

④当上一个数的列数为n时,下一个数的列数应为1,行数减1。如2在第3行第3列,3应在第2行第1列。

⑤如果按上面规则确定的位置上已有数,或上一个数是第1行第n列时,则把下一个数放在上一个数的下面。如按上面的规定,

4应放在第1行第2列,但该位置已被1占据,所以4就放在3的下面。由于6是第1行第3列(即最后一列),故7放在6下面。*/

#include

using namespace std;

int MAX=15;

voidprintMagic(int n);

void main()

{

int n=1;

cout<<"请输入一个奇数n(如果是偶数则结束):";

cin>>n;

while(n%2!=0)

{

printMagic(n);

cout<<"********************"<

cout<<"请输入一个奇数n:";

cin>>n;

}

}

voidprintMagic(int n)

{

int **a,i=0,j=0;

a=(int **)malloc(sizeof(int*)*n);

while(i

{

a[i]=(int *)malloc(sizeof(int)*n);

i++;

}

int row=0,lin=n/2,tem_row,tem_lin;

i=0,j=0;

for(i;i

{

for(j;j

{

a[i][j]=0;

}j=0;

}i=1;

for(i;i<=n*n;i++)

{

a[row][lin]=i;

tem_row=row;tem_lin=lin;

row=(row-1+n)%n;lin=(lin+1)%n;

if(a[row][lin]!=0)

{

row=(tem_row+1)%n;

lin=tem_lin;

}

}i=0;j=0;

while(i

{

while(j

{

printf("%4d",a[i][j]);

j++;

}i++;j=0;cout<

}

}

MATLAB矩阵处理_习题答案

第3章 MATLAB矩阵处理 习题3 一、选择题 1.产生对角线上全为1,其余为0的2行3列矩阵的命令是()。C A.ones(2,3) B.ones(3,2) C.eye(2,3) D.eye(3,2) 2.建立3阶单位矩阵A的命令是()。A A.A=eye(3) B.A=eye(3,1) C.A=eye(1,3) D.A=ones(3) 3.产生和A同样大小的幺矩阵的命令是()。B A.eye(size(A)) B.ones(size(A)) C.size(eye(A)) D.size(ones(A)) 4.建立5×6随机矩阵A,其元素为[100,200]范围内的随机整数,相应的命令是()。D A.A=fix(100+200*rand(5,6)) B.A=fix(200+100*rand(5,6)) C.A= fix(100+300*rand(5,6)) D.A=fix(100+101*rand(5,6)) 5.产生均值为1、方差为的500个正态分布的随机数,相应的命令是()。A。 A.1+sqrt*randn(25,20) B.1+*randn(500) C.+randn(500) D.+randn(25,20) 6.从矩阵A提取主对角线元素,并以这些元素构成对角阵B,相应的命令是()。B A.B=diag(A) B.B=diag(diag(A)) C.B=diag(triu(A)) D.B=diag(tril(A)) 7.在MATLAB中定义A=randn(5,4,3,2),则下列关于A的操作中正确的是()。D A.y=eig(A) B.y=reshape(A,[4 3 6 7]) C.y=cond(A) D.y=sin(A) 8.在命令行窗口中分别输入下列命令,对应输出结果正确的是()。C A.命令x=[-2:2]',结果x=[-2 -1 0 1 2] B.命令x=zeros(1,2);x>0,结果ans=1 C.命令y=diag(eye(3),1)',结果y=[0 0] D.命令5-10*rand(1,2),结果ans=[ ] 9.将矩阵A对角线元素加30的命令是()。A A.A+30*eye(size(A)) B.A+30*eye(A) C.A+30*ones(size(A)) D.A+30*eye(4)

实验二 MATLAB矩阵分析与处理

实验二MATLAB矩阵分析与处理 1、 E=eye(3); R=rand(3,2); O=zeros(2,3); S=diag([rand(1,2)]); A=[E R;O S]; B=A^2-[E R+R*S;O S^2] 运行得:B = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 故等式成立。 2、 H=hilb(5); P=pascal(5); Hh=det(H) Hp=det(P) Th=cond(H) Tp=cond(P) 行列式值:Hh = 3.7493e-12 Hp = 1 条件数:Th = 4.7661e+05 Tp = 8.5175e+03 , 可知帕斯卡矩阵的条件数更接近1,所以帕斯卡矩阵的性能更好。3、 建立5阶随机矩阵可得如下结果: a=rand(5);det(a) ans = 0.0710 trace(a) ans = 3.0400 rank(a) ans = 5 cond(a)

ans = 19.0668 4、 A=[-29 6 18;20,5,12;-8 8 5] [V,D]=eig(A) V = 0.7130 0.2803 0.2733 -0.6084 -0.7867 0.8725 0.3487 0.5501 0.4050 D = -25.3169 0 0 0 -10.5182 0 0 0 16.8351 所以求得的三个特征值为-25.3169、-10.5182和16.8351,各特征值对应的特征向量为V的各列构成的向量。 5、 a=hilb(4);a=a(1:3,2:4) b=[0.95 0.67 0.52]' x=inv(a)*b (1)方程解为:x = 1.2000 0.6000 0.6000 b(3)=0.53;x2=inv(a)*b x2 = 3.0000 -6.6000 6.6000 (2)b3仅改变了0.01,解的相对变化大得多。 (3) cond(a)的结果为1.3533e+03,远大于1。由条件数的定义可知,系数矩阵A的条件数较大,解会因系数矩阵的微小扰动发生大的变化,而由此题可知解也会因方程右边向量的微小扰动发生大的变化。 6、 A=1:9;A=reshape(A,3,3) a1=sqrt(A);a2=sqrtm(A) a1 = 1.0000 2.0000 2.6458 1.4142 2.2361 2.8284 1.7321 2.4495 3.0000 a2 = 0.4498 + 0.7623i 1.0185 + 0.0842i 1.5873 - 0.5940i 0.5526 + 0.2068i 1.2515 + 0.0228i 1.9503 - 0.1611i 0.6555 - 0.3487i 1.4844 - 0.0385i 2.3134 + 0.2717i 可得sqrtm(A)为对矩阵A整体开方,而sqrt(A)为对矩阵A里的每个元素分别开方。

matlab矩阵操作汇总

matlab矩阵操作大全 1.1.1数值矩阵的生成 1.实数值矩阵输入 MATLAB的强大功能之一体现在能直接处理向量或矩阵。当然首要任务是输入待处理的向量或矩阵。 不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一方括号([])内;当矩阵是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多 重的方括号。如: >> Time = [11 12 1 2 3 4 5 6 7 8 9 10] Time = 11 12 1 2 3 4 5 6 7 8 9 10 >> X_Data = [2.32 3.43 ; 4.37 5.98] X_Data = 2.43 3.43 4.37 5.98 >> vect_a = [1 2 3 4 5] vect_a = 12~ 3 4 5 >> Matrix_B = [1 2 3 ; >> 2 3 4 ; 3 4 5] Matrix_B = 1 2 3 2 3 4 3 4 5 >> Null_M = [ ] %生成一个空矩阵

2 .复数矩阵输入 复数矩阵有两种生成方式: 第一种方式 1/ 13

例1-1 >> a="2".7。b=13/25 >> C 二[1,2*a+i*b,b*sqrt(a) 5.4000 + 0.5200i 0.8544 5.3000 4.5000 第2种方式 例1-2 >> R=[1 2 3 。 4 5 6], M=[11 12 13 。 14 15 16] R = I 2 3 4 5 6 M = II 12 13 14 15 16 >> CN="R"+i*M CN = 1.0000 +11.0000i 2.0000 +12.0000i 3.0000 +13.0000i 4.0000 +14.0000i 5.0000 +15.0000i 6.0000 +16.0000i si n(pi/4),a+5*b,3.5+1] C= 1.0000 0.7071

常用MATLAB矩阵处理

>> x=zeros(3,4) x = 0 0 0 0 0 0 0 0 0 0 0 0 >> x=ones(3,4) x = 1 1 1 1 1 1 1 1 1 1 1 1 >> x=eye(3,4) x = 1 0 0 0 0 1 0 0 0 0 1 0 >> x=rand(3,4) x = 0.9501 0.4860 0.4565 0.4447 0.2311 0.8913 0.0185 0.6154 0.6068 0.7621 0.8214 0.7919 >> x=randn(3,4) x = -0.4326 0.2877 1.1892 0.1746 -1.6656 -1.1465 -0.0376 -0.1867 0.1253 1.1909 0.3273 0.7258 >> magic(3) ans = 8 1 6 3 5 7 4 9 2 >> a=[1 2 3]

a = 1 2 3 >> diag(a) ans = 1 0 0 0 2 0 0 0 3 >> diag(a -1) ans = 0 0 0 0 1 0 0 0 2 >> h1=hilb(2) h1 = 1.0000 0.5000 0.5000 0.3333 >> h2=invhilb(2) h2 = 4 -6 -6 12 >> inv(h1) ans = 4.0000 -6.0000 -6.0000 12.0000 拼接矩阵: ①水平方向拼接 >> a=magic(3) a = 8 1 6 3 5 7 4 9 2

>> b=eye(3) b = 1 0 0 0 1 0 0 0 1 >> c=[a b] c = 8 1 6 1 0 0 3 5 7 0 1 0 4 9 2 0 0 1 ②垂直方向拼接 >> d=[a;b] d = 8 1 6 3 5 7 4 9 2 1 0 0 0 1 0 0 0 1 拼接函数: 1)Cat函数 C=cat(dim,A,B); Dim= 1 垂直方向 2 水平方向 3 生成三维数组 >> a=[1,5,9;3,5,7;10,2,8]; >> b=magic(3); >> c1=cat(2,a,b) c1 = 1 5 9 8 1 6 3 5 7 3 5 7 10 2 8 4 9 2 >> c2=cat(1,a,b)

matlab矩阵的表示和简单操作

matlab矩阵的表示和简单操作 一、矩阵的表示 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]”内; b、矩阵的同行元素之间用空格(或”,”)隔开; c、矩阵的行与行之间用”;”(或回车符)隔开; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 二,矩阵的创建: 1、直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 2、利用MATLAB函数创建矩阵 基本矩阵函数如下: (1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n维的全1矩阵; (2) zeros()函数:产生全为0的矩阵; (3) rand()函数:产生在(0,1)区间均匀分布的随机阵; (4) eye()函数:产生单位阵; (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。 3、利用文件建立矩阵 当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n 的二维矩阵。 二、矩阵的简单操作 1.获取矩阵元素 可以通过下标(行列索引)引用矩阵的元素,如Matrix(m,n)。 也可以采用矩阵元素的序号来引用矩阵元素。 矩阵元素的序号就是相应元素在内存中的排列顺序。 在MATLAB中,矩阵元素按列存储。 序号(Index)与下标(Subscript )是一一对应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。 其相互转换关系也可利用sub2ind和ind2sub函数求得。

实验二MATLAB矩阵分析和处理

实验二 MATLAB 矩阵分析和处理 一、实验目的 1.掌握生成特殊矩阵的方法。 2.掌握矩阵分析的方法。 4.用矩阵求逆法解线性方程组。 二、实验内容 1.设有分块矩阵?? ????=????22322333S O R E A ,其中E,R,O,S 分别为单位矩阵、随机矩阵、零矩阵和对角矩阵,试通过数值计算验证??????+=22S O RS R E A 。 解: >> E=eye(3); >> R=rand(3,2); >> O=zeros(2,3); >> S=diag(1:2); >> A=[E R;O S]; A = 1.0000 0 0 0.9501 0.4860 0 1.0000 0 0.2311 0.8913 0 0 1.0000 0.6068 0.7621 0 0 0 1.0000 0 0 0 0 0 2.0000 >> A^2 ans = 1.0000 0 0 1.9003 1.4579

0 1.0000 0 0.4623 2.6739 0 0 1.0000 1.2137 2.2863 0 0 0 1.0000 0 0 0 0 0 4.0000 >> [E R+R*S;O S^2] ans = 1.0000 0 0 1.9003 1.4579 0 1.0000 0 0.4623 2.6739 0 0 1.0000 1.2137 2.2863 0 0 0 1.0000 0 0 0 0 0 4.0000 所以?? ????+=22S O RS R E A . 2.产生5阶希尔伯特矩阵H 和5阶帕斯卡矩阵P ,求其行列式的值Hh 和Hp 以及他们的条件数Th 和Tp ,判断哪个矩阵性能更好,为什么? 解:H=hilb(5) H = 1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250 0.2000 0.1667 0.1429 0.1250 0.1111 >> P=pascal(5) P =

MATLAB中矩阵常用的操作函数

MATLAB中矩阵常用的操作函数 1. zeos : 生成零矩阵 2. ones : 生成1矩阵 3. eye : 生成单位矩阵 4. rand : 返回[0,1]之间的平均分布的随机数(矩阵) 5. randn : 返回标准正态分布的随机数(矩阵) 6. mean : 返回列的均值 7. std : 返回列的方差 8. magic : 返回魔方矩阵,即行、列,对角线元素之和都相等的矩阵 9. hilb : 返回Hilbert矩阵,即H(i,j)=1/(i+j-1) 的矩阵 10. toeplitz : 返回toeplitz矩阵 11. 常用运算: 和:A+B 积:A*B 转置:A',注意:如果A是复矩阵,则A'是共轭转置 行列式:det(A) 逆:inv(A) 内积:dot(a, b) 秩:rank(A) 迹:trace(A) 12. 线性方程组:Ax=b,可以用左除运算:x=A\b;也可以用逆运算:x=inv(A)*b,但效率不如左除运算。 13. Jordan 标准型:jordan(A),返回A的Jordan标准型。或者用两个参数接收结果:[V, J] = jordan(A),那么J是A的Jordan标准型,V是用到的相似变换矩阵,即A=V*J*inv(V)。 14. SVD分解,即奇异值分解:[U, S, V] = svd(A),A=USV'。 15. 特征值:eig(A)返回A的所有特征值。如果用两个参数接收结果:[E, F] = eig(A),那么E 的列是A的特征向量,F是A的特征值。 16. 范数: 1范数:norm(A, 1) 2范数:norm(A, 2) 无穷范数:norm(A, inf) Frobenius范数(也叫Euclid范数,简称F-范数或者E-范数),即A全部元素平方和的平方根:norm(A, 'fro') 17. 矩阵函数:通用方法是funm(A, @fun),即计算矩阵A的fun函数。

实验 二 MATLAB矩阵分析与处理

实验二 MATLAB 矩阵分析与处理 一、实验目的 1.掌握生成特殊矩阵的方法; 2.掌握矩阵分析的方法; 3.用矩阵求逆法解线性方程组。 二、实验内容 (1)设有分块矩阵33 322322E R A O S ??????=???? ,其中E 、R 、O 、S 分别为单位矩阵、随即矩阵、零矩阵和对角阵,试通过数值计算验证22E R R S A O S +??=???? 。 解:E=eye(3); R=rand(3,2); O=zeros(2,3); S=diag([2,3]); A=[E,R;O,S]; A^2 B=[E,(R+R*S);O,S^2] ans = Columns 1 through 4 1.0000 0 0 2.4442 0 1.0000 0 2.7174 0 0 1.0000 0.3810 0 0 0 4.0000 0 0 0 0 Column 5 3.6535 2.5294 0.3902 9.0000 B =

Columns 1 through 4 1.0000 0 0 2.4442 0 1.0000 0 2.7174 0 0 1.0000 0.3810 0 0 0 4.0000 0 0 0 0 Column 5 3.6535 2.5294 0.3902 9.0000 (2).产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好,为什么? 解:H=hilb(5) P=pascal(5) Hh=det(H) Hp=det(P) Th=cond(H) Tp=cond(P) H = 1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250 0.2000 0.1667 0.1429 0.1250 0.1111 P = 1 1 1 1 1 1 2 3 4 5 1 3 6 10 15 1 4 10 20 35 1 5 15 35 70 Hh = 3.7493e-012 Hp =

Matlab矩阵操作函数汇总

矩阵创建相关函数 cat函数 语法说明:A = cat(n,A1,A2,… ,Am) 功能介绍:创建多维数组 实例: >> A1 = [1 2 3; 4 5 6; 7 8 9];A2 = A1'; A3 = A1 - A2; >> A4 = cat(3, A1, A2, A3) A4(:,:,1) = 1 2 3 4 5 6 7 8 9 A4(:,:,2) = 1 4 7 2 5 8 3 6 9 A4(:,:,3) = 0 -2 -4 2 0 -2 4 2 0 n = 3是构造三维数组,n = 1和2分别构造[A1;A2]以及[A1,A2],都是二维数组。

eye函数 功能介绍:单位矩阵生成 语法说明: ?Y = eye(n),生成n*n单位矩阵 ?Y = eye(m, n),生成m*n单位矩阵 ?Y = eye(sizes(A)),生成与矩阵A相同大小的单位矩阵实例: >> n = 3; m = 5; >> Y1 = eye(n) Y1 = 1 0 0 0 1 0 0 0 1 >> Y2 = eye(m, n) Y2 = 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 ones函数

功能介绍:全1矩阵生成 语法说明: ?Y=ones(n):生成n*n全1矩阵 ?Y =one(m,n):生成m*n全1矩阵 ?Y=ones([m,n]):生成m*n全1矩阵 ?Y=ones(d1,d2,d3):生成d1*d2*d3全1矩阵 ?Y=ones([d1,d2,d3]):生成d1*d2*d3全1矩阵 ?Y=ones(size(A)):生成与矩阵A相同大小的全1矩阵 strcmp函数 功能介绍:字符串比较函数 语法说明: ?Y=strcmp(str1,str2):比较两个字符串是否相等,返回值是0或者 ‘==’也是比较前后两个字符串,且要求前后两个字符串长度相同,但是是每个位置都进行比较。返回的一般是一个数组 实例: >> D = strcmp('hello', 'Hello') D = >> D = strcmp('Hello','Hello') D = 1

MATLAB矩阵及矩阵操作

MATLAB矩阵及矩阵操作 数值数组(Numeric Array)和数组运算(Array Operations)始终是MATLAB的核心内容。自MATLAB5.x版起,由于其“面向对象”的特征,这种数值数组(以下简称为数组)成为了MATALB最重要的一种内建数据类型(Built-in Data Type),而数组运算就是定义在这种数据结构上的方法(Method)。 本节系统阐述:一、二维数值数组的创建、寻访;数组运算和矩阵运算的区别;实现数组运算的基本函数;多项式的表达、创建和操作;常用标准数组生成函数和数组构作技法;高维数组的创建、寻访和操作;非数NaN、“空”数组概念和应用;关系和逻辑操作。 顺便指出:(1)本章所涉内容和方法,不仅使用于数值数组,而且也将部分地延伸使用于在其他数据结构中。 一、变量和数据 1 数据类型 MATLAB7.3定义了15种基本的数据类型 1.1 建立double类型数据:例:(注:double为系统默认数据类型) a=3.3 a = 3.3000

方法一:whos 要查看的变量名注:查看多个变量时各变量之间用空格分开,不能用逗号分开 例:查看上面定义的变量a whos a Name Size Bytes Class a 1x1 8 double array Grand total is 1 element using 8 bytes 方法二:使用class函数,函数调用常用格式:str = class(object) ——函数返回object的类型 例:class(a) ans = double 方法三:使用isa函数,函数调用常用格式:n = is(object,'类型')——函数返回值为1,说明object为第二个参数指定的类型,0表示不是。 例:isa(a,'double') ans = 1 isa(a,'char') ans = 1.2建立其他数值类型数据的方法 ●使用single、int_、uint_分别建立单精度、有符号整型、无符号整型的数据例: b=single(a)%建立单精度变量b b = 3.3000 whos a b %查看变量a b的详细信息 Name Size Bytes Class a 1x1 8 double array b 1x1 4 single array Grand total is 2 elements using 12 bytes class(b) %获取变量b的数据类型ans = single isa(b,'single') ans = 1 c=int8(a) %尝试把变量a的值改为3.8,看结果有何变化,得出什么结论? c = 3 class(c)%获取变量c的数据类型ans = int8 isa(c,'int8') ans = 1 结论:a的值改为3.8后变量c的值变为4,说明在MATLAB中将一个浮点型数据转换为整型数据是遵循“四舍五入”的法则 2、数值 ●需了解MATLAB表达方式的组成、类型 ●了解数组(array)、矩阵(matrix)、向量(vector)、标量(数字)(scalar)的概念和它们 之间的关系。 ●标量和向量是矩阵的特例,而矩阵是数组的特例。 ●复数(complex)和复数矩阵——实数矩阵是复数矩阵的特例,虚部为0 MATLAB把复数作为一个整体处理,虚数单位用自定义变量i或j表示。

MATLAB 矩阵操作大全

MATLAB 矩阵操作大全 转载自: https://www.wendangku.net/doc/8b17391851.html,/dengjianqiang2011/article/details/8753807 MATLAB矩阵操作大全 一、矩阵的表示 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]”内; b、矩阵的同行元素之间用空格(或”,”)隔开; c、矩阵的行与行之间用”;”(或回车符)隔开; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 二,矩阵的创建: 1、直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 2、利用MATLAB函数创建矩阵 基本矩阵函数如下: (1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n维的全1矩阵; (2) zeros()函数:产生全为0的矩阵; (3) rand()函数:产生在(0,1)区间均匀分布的随机阵; (4) eye()函数:产生单位阵; (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。

3、利用文件建立矩阵 当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n 的二维矩阵。 二、矩阵的简单操作 1.获取矩阵元素 可以通过下标(行列索引)引用矩阵的元素,如Matrix(m,n)。 也可以采用矩阵元素的序号来引用矩阵元素。 矩阵元素的序号就是相应元素在内存中的排列顺序。 在MATLAB中,矩阵元素按列存储。 序号(Index)与下标(Subscript )是一一对应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。 其相互转换关系也可利用sub2ind和ind2sub函数求得。 2.矩阵拆分 利用冒号表达式获得子矩阵: (1) A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。 (2) A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素;A(:,k:k+m)表示取A矩阵第 k~k+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m 列中的所有元素。此外,还可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。 利用空矩阵删除矩阵的元素: 在MATLAB中,定义[]为空矩阵。给变量X赋空矩阵的语句为X=[]。注意,X=[]与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。 3、特殊矩阵 (1) 魔方矩阵魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,…,n2共n2个整数组成。MATLAB提供了求魔方矩阵的函数magic(n),其功能是生成一个n阶魔方阵。

matlab相关矩阵操作及相关实例[1]

第1章矩阵及其基本运算 MATLAB,即“矩阵实验室”,它是以矩阵为基本运算单元。因此,本书从最基本的运算单元出发,介绍MATLAB的命令及其用法。 1.1 矩阵的表示 1.1.1 数值矩阵的生成 1.实数值矩阵输入 MATLAB的强大功能之一体现在能直接处理向量或矩阵。当然首要任务是输入待处理的向量或矩阵。 不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一方括号([ ])内;当矩阵是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多重的方括号。如: >> Time = [11 12 1 2 3 4 5 6 7 8 9 10] Time = 11 12 1 2 3 4 5 6 7 8 9 10 >> X_Data = [2.32 3.43;4.37 5.98] X_Data = 2.43 3.43 4.37 5.98 >> vect_a = [1 2 3 4 5] vect_a = 1 2 3 4 5 >> Matrix_B = [1 2 3; >> 2 3 4;3 4 5] Matrix_B = 1 2 3 2 3 4 3 4 5 >> Null_M = [ ] %生成一个空矩阵 2.复数矩阵输入 复数矩阵有两种生成方式: 第一种方式 例1-1 >> a=2.7;b=13/25; >> C=[1,2*a+i*b,b*sqrt(a); sin(pi/4),a+5*b,3.5+1] C= 1.0000 5.4000 + 0.5200i 0.8544 0.7071 5.3000 4.5000 第2种方式 例1-2 >> R=[1 2 3;4 5 6], M=[11 12 13;14 15 16] R = 1 2 3

MATLAB语言矩阵处理

实验六 特征值与特征向量、若当标准形 【实验目的】 1.了解特征值与特征向量基本概念及其性质; 2.了解若当标准型的基本概念; 3.学习、掌握MATL AB 软件有关的命令。 【实验准备】 1.特征多项式 设A 为n 阶方阵, 如果数“λ”和n维列向量x 使得关系式x Ax λ=成立, 则称λ为方阵A 的特征值, 非零向量x 称为A 对应于特征值“λ”的特征向量。 poly(A ),返回矩阵A的特征多项式的向量表示形式,例如: >> c lear >> A=[1 0;2 3]; >> p =poly (A) %矩阵A的特征多项式的向量表示形式 p = 1 -4 3 >> f=poly2str(p,'x ') %矩阵A 的特征多项式 f = x^2 - 4 x + 3 或者由定义出发,计算特征多项式.例如: >> clear >> A=[1 0;2 3]; >> E=eye(2); %2阶单位阵 >> syms x >> f=de t(x *E-A) %矩阵A 的特征多项式 f = (x-1)*(x -3) 2.特征值与特征向量eigenvalue 求一个方阵的特征值与特征向量可以使用函数ei g( ). d=eig(A), 返回A 所有特征值组成的列向量d. [V,D]= e ig (A), 返回A所有特征值组成的矩阵D 和特征向量组成的矩阵V. [V,D]= ei gs (A ), 返回A 所有特征值(按大小次序)组成的对角矩阵D 和特征向量组成的矩阵V,且满足D=V -1AV . d=ei g(A,B), 返回复数矩阵A+Bi 所有特征值组成的向量d . [V,D]= eig(A ,B), 返回复数矩阵A+Bi 所有特征值组成的矩阵D 和特征向量组成的矩阵V. 例如: >> cle ar (>> forma t)(>> format rat )

相关文档