matlab矩阵操作汇总.docx

上传人:b****1 文档编号:14325712 上传时间:2023-06-22 格式:DOCX 页数:20 大小:128.82KB
下载 相关 举报
matlab矩阵操作汇总.docx_第1页
第1页 / 共20页
matlab矩阵操作汇总.docx_第2页
第2页 / 共20页
matlab矩阵操作汇总.docx_第3页
第3页 / 共20页
matlab矩阵操作汇总.docx_第4页
第4页 / 共20页
matlab矩阵操作汇总.docx_第5页
第5页 / 共20页
matlab矩阵操作汇总.docx_第6页
第6页 / 共20页
matlab矩阵操作汇总.docx_第7页
第7页 / 共20页
matlab矩阵操作汇总.docx_第8页
第8页 / 共20页
matlab矩阵操作汇总.docx_第9页
第9页 / 共20页
matlab矩阵操作汇总.docx_第10页
第10页 / 共20页
matlab矩阵操作汇总.docx_第11页
第11页 / 共20页
matlab矩阵操作汇总.docx_第12页
第12页 / 共20页
matlab矩阵操作汇总.docx_第13页
第13页 / 共20页
matlab矩阵操作汇总.docx_第14页
第14页 / 共20页
matlab矩阵操作汇总.docx_第15页
第15页 / 共20页
matlab矩阵操作汇总.docx_第16页
第16页 / 共20页
matlab矩阵操作汇总.docx_第17页
第17页 / 共20页
matlab矩阵操作汇总.docx_第18页
第18页 / 共20页
matlab矩阵操作汇总.docx_第19页
第19页 / 共20页
matlab矩阵操作汇总.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

matlab矩阵操作汇总.docx

《matlab矩阵操作汇总.docx》由会员分享,可在线阅读,更多相关《matlab矩阵操作汇总.docx(20页珍藏版)》请在冰点文库上搜索。

matlab矩阵操作汇总.docx

matlab矩阵操作汇总

matlab矩阵操作大全

1.1.1数值矩阵的生成

1.实数值矩阵输入

MATLAB的强大功能之一体现在能直接处理向量或矩阵。

当然首要任务

是输入待处理的向量或矩阵。

不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:

同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。

所有元素处于一方括号([])内;当矩阵

是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多

重的方括号。

如:

>>Time=[1112

12

34

5678910]

Time=

11121234

56

78

910

>>X_Data=[2.32

3.43;

4.37

5.98]

X_Data=

2.433.43

4.375.98

>>vect_a=[12345]

vect_a=

12~345

>>Matrix_B=[123;

>>234;345]

Matrix_B=123

234

345

>>Null_M=[]%生成一个空矩阵

2.复数矩阵输入

复数矩阵有两种生成方式:

第一种方式

1/13

 

例1-1

>>a="2".7。

b=13/25

sin(pi/4),a+5*b,3.5+1]

C=

1.0000

0.7071

>>C二[1,2*a+i*b,b*sqrt(a)

5.4000+0.5200i0.8544

5.30004.5000

第2种方式

例1-2

>>R=[123。

456],M=[111213。

141516]

R=

I23

456

M=

II1213

141516

>>CN="R"+i*M

CN=

1.0000+11.0000i2.0000+12.0000i3.0000+13.0000i

4.0000+14.0000i5.0000+15.0000i6.0000+16.0000i

1.1.2符号矩阵的生成

在MATLAB中输入符号向量或者矩阵的方法和输入数值类型的向量或

者矩阵在形式上很相像,只不过要用到符号矩阵定义函数sym,或者是

用到符号定义函数syms,先定义一些必要的符号变量,再像定义普通矩阵一样输入符号矩阵。

1.用命令sym定义矩阵:

这时的函数sym实际是在定义一个符号表达式,这时的符号矩阵中的

元素可以是任何的符号或者是表达式,而且长度没有限制,只是将方括号置于用于创建符号表达式的单引号中。

如下例:

>>sym_matrix

=sym('[abc;Jack,

HelpMe!

NOWAY!

],')

sym_matrix=

[ab

c]

[JackHelpMe!

NOWAY!

]

>>sym_digits:

=sym('[123;abc;

sin(x)cos

,(y)tan(z)]')

sym_digits=

[1-2

3]

[ab

c]

[sin(x)cos

(y)tan(z)]

2.用命令syms定义矩阵

先定义矩阵中的每一个元素为一个符号变量,而后像普通矩阵一样输入

符号矩阵。

例1-4

>>syms

a

bc;

>>M1=

sym

('Classical');

>>M2=

sym

('Jazz');

>>M3=

sym

('Blues')

>>syms_matrix=[abc;M1,M2,M3;int2str([235])]syms_matrix=

[abc]

[ClassicalJazzBlues]

[235]

把数值矩阵转化成相应的符号矩阵。

数值型和符号型在MATLAB中是不相同的,它们之间不能直接进行转

化。

MATLAB提供了一个将数值型转化成符号型的命令,即sym。

例1-5

>>Digit_Matrix=[1/3sqrt

(2)3.4234;exp(0.23)log(29)23A

(-11.23)]

>>Syms_Matrix=sym(Digit_Matrix)

结果是:

Digit_Matrix=

3.4234

0.0000

0.33331.4142

1.25863.3673

Syms_Matrix=

5174709270083729*2八(-103)]

注意:

矩阵是用分数形式还是浮点形式表示的,将矩阵转化成符号矩阵

后,都将以最接近原值的有理数形式表示或者是函数形式表示。

1.1.3大矩阵的生成

对于大型矩阵,一般创建M文件,以便于修改:

例1-6用M文件创建大矩阵,文件名为example.m

>>example。

>>size(exm)%显示exm的大小

ans二

56%表示exm有5行6列。

1.1.4多维数组的创建

函数cat

格式A="cat"(n,A1,A2,…,Am)

说明n二"1和n"=2时分别构造[A1;A2]和[A1,A2],都是二维数组,

而n=3时可以构造出三维数组。

例1-7

>>A仁[1,2,3。

4,5,6。

7,8,9]。

A2=A1'

>>A4=cat(3,A1,A2,A3)

A4(:

:

1)=

123

456

789

A4(:

:

2)=

147

258

369

A4(:

:

3)=

0-2-4

20-2

420

或用另一种原始方式可以定义:

例1-8

>>A1=[1,2,3。

4,5,6。

7,8,9]。

A2=A1'。

>>A5(:

:

1)=A1,A5(:

:

2)=A2,A5(:

:

3)=A3

A5(:

:

1)=

123

456

789

A5(:

:

2)=

147

258

369

A5(:

:

3)=

0-2-4

20-2

420

A3=A1-A2

A3=A1-A2

1.1.5特殊矩阵的生成

命令全零阵

函数zeros

格式B=zeros(n)

%生成nxn全零阵

B=zeros(m,n)

%生成mxn全零阵

B=zeros([mn])

%生成mxn全零阵

B=zeros(d1,d2,d3

…)%生成d1xd2xd3x全零阵或数组

B=zeros([d1d2d3

…])%生成d1xd2xd3x全零阵或数组

B=zeros(size(A))

%生成与矩阵A相同大小的全零阵

命令单位阵

函数eye

格式Y二eye(n)

%生成nxn单位阵

Y二eye(m,n)

%生成mxn单位阵

Y二eye(size(A))

%生成与矩阵A相同大小的单位阵

命令全1阵

函数ones

格式Y二ones(n)

%生成nxn全1阵

Y二ones(m,n)

%生成mxn全1阵

Y二ones([mn])

%生成mxn全1阵

Y=ones(d1,d2,d3

…)%生成d1xd2xd3x全1阵或数组

Y二ones([d1d2d3

…])%生成d1xd2xd3x全1阵或数组

Y二ones(size(A))

%生成与矩阵A相同大小的全1阵

命令均匀分布随机矩阵

函数rand

格式Y二rand(n)

%生成nxn随机矩阵,其元素在(0,1)内

Y=rand(m,n)

%生成mXn随机矩阵

Y二rand([mn])

%生成mXn随机矩阵

Y=rand(m,n,p,

…)%生成nnxnxpx•随机矩阵或数组

Y二rand([mnp

…])%生成mxnxpx•随机矩阵或数组

Y=rand(size(A))

%生成与矩阵A相同大小的随机矩阵

rand

%无变量输入时只产生一个随机数

s=rand('state')

%产生包括均匀发生器当前状态的35个元素的

向量

rand('state',s)

%使状态重置为s

rand('state',0)

%重置发生器到初始状态

rand('state',j)

%对整数j重置发生器到第j个状态

rand('state',sum(100*clock))%每次重置到不同状态

例1-9产生一个

3X4随机矩阵

0.9501

0.4860

0.4565

0.4447

0.2311

0.8913

0.0185

0.6154

0.6068

0.7621

0.8214

0.7919

例1-10

产生一个在区间[10,20]内均匀分布的

>>a二"10"。

b=20。

>>x="a"+(b-a)*rand(4)

x=

19.218119.354710.5789

11.3889

仃.3821

19.1690

13.5287

12.0277

11.7627

14.1027

18.1317

11.9872

>>R="rand"(3,4)

R=

4阶随机矩阵

 

14.057118.936510.098616.0379

 

 

%每次重置到不同状态

s=randn('state',sum(100*clock))

例1-11产生均值为0.6,方差为0.1的4阶矩阵

>>mu="0".6。

sigma二"0".1。

>>x="mu"+sqrt(sigma)*randn(4)x=

0.8311

0.7799

0.1335

1.0565

0.7827

0.5192

0.5260

0.4890

0.6127

0.4806

0.6375

0.7971

0.8141

0.5064

0.6996

0.8527

命令产生随机排列函数randperm

格式

p=randperm(n)

%产生1〜n之间整数的随机排列

例1-12

>>randperm(6)

ans=

3

21546

命令

产生线性等分向量

函数

linspace

格式

y=linspace(a,b)

%在(a,b)上产生100个线性等分点

y=linspace(a,b,n)%在(a,b)上产生

n个线性等分点

命令

产生对数等分向量

函数

logspace

格式

y=logspace(a,b)

%在(

)之间产生50个对数等分向量

y=logspace(a,b,n)y=logspace(a,pi)

命令

计算矩阵中兀素个数

n二numel(a)%返回矩阵A的元素的个数

命令产生以输入元素为对角线元素的矩阵

函数blkdiag

格式out=blkdiag(a,b,c,d,…%产生以a,b,c,d,•为对角线元素的矩阵

例1-13

>>out=blkdiag(1,2,3,4)

out=

1000

0200

0030

0004

命令友矩阵函数compan

格式A=compan(u)%u为多项式系统向量,A为友矩阵,A的第1行元素为-u(2:

n)/u

(1),其中u(2:

n)为u的第2到第n个元素,A为特征值就是多项式的特征根。

例1-14求多项式的友矩阵和根

>>u=[10-76]。

>>A二"compan"(u)%求多项式的友矩阵

A=

0

7

-6

1

0

0

0

1

0

>>

eig(A)

%A的特征值就是多项式的根

ans=

-3.0000

2.0000

1.0000

命令hadamard矩阵

函数hadamard

格式H二hadamard(n)%返回n阶hadamard矩阵

例1-15

>>h="hadamard"(4)

h=

1111

1-11-1

11-1-1

1-1-11

命令Hankel方阵

函数hankel

格式H二hankel(c)%第1列元素为c,反三角以下元素为0

H=hankel(c,r)%第1列元素为c,最后一行元素为r,如果c的最后

一个元素与r的第一个元素不同,交叉位置元素取为c的最后一个元素

例1-16

>>c="1:

3",r=7:

10

c=

123

r=

78910

>>h="hankel"(c,r)

h=

1238

2389

38910

命令Hilbert矩阵

函数hilb

格式H二hilb(n)%返回n阶Hilbert矩阵,其元素为H(i,j)=1/(i+j-1)

例1-17产生一个3阶Hilbert矩阵

>>formatrat%以有理形式输出

>>H="hilb"(3)

H=

11/21/3

1/2

1/31/4

1/3

1/41/5

命令

逆Hilbert矩阵

函数

invhilb

格式

H=invhilb(n)%产生

n阶逆Hilbert矩阵

命令

Magic(魔方)矩阵

函数

magic

格式

M=magic(n)%产生

n阶魔方矩阵

例1-18

>>M="magic"(3)

M=

816

357

492

命令Pascal矩阵

函数pascal

格式A=pascal(n)%产生n阶Pascal矩阵,它是对称、正定矩阵,

它的元素由Pascal三角组成,它的逆矩阵的所有元素都是整数。

A=pascal(n,1)%返回由下三角的Cholesky系数组成的Pascal矩

 

A=pascal(n,2)

%返回Pascal(n,1)的转置和交换的形式

例1-19

>>A="pascal"(4)

A=

111

123

136

1410

>>A="pascal"(3,1)A=

100

1-10

1-21

>>A="pascal"(3,2)A=

111

-2-10

100

1

4

10

20

命令托普利兹矩阵

函数toeplitz

格式T=toeplitz(c,r)

%生成一个非对称的托普利兹矩阵,将

c作为

第1列,将r作为第1行,其余元素与左上角相邻元素相等

 

T=toeplitz(r)%用向量r生成一个对称的托普利兹矩阵

例1-20>>c=[12345]。

>>r二[1.52.53.54.55.5]。

格式W=wilkinson(n)%返回n阶Wilkinson特征值测试阵

例1-21

>>W二"wilkinson"(4)

W=

3/2

1

0

0

1

1/2

1

0

0

1

1/2

1

0

0

1

3/2

 

>>W="wilkinson"(7)

W=

3

1

0

0

0

0

0

1

2

1

0

0

0

0

0

1

1

1

0

0

0

0

0

1

0

1

0

0

0

0

0

1

1

1

0

0

0

0

0

1

2

1

0

0

0

0

0

1

3

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2