matlab矩阵操作.docx

上传人:b****8 文档编号:13161321 上传时间:2023-06-11 格式:DOCX 页数:72 大小:52.65KB
下载 相关 举报
matlab矩阵操作.docx_第1页
第1页 / 共72页
matlab矩阵操作.docx_第2页
第2页 / 共72页
matlab矩阵操作.docx_第3页
第3页 / 共72页
matlab矩阵操作.docx_第4页
第4页 / 共72页
matlab矩阵操作.docx_第5页
第5页 / 共72页
matlab矩阵操作.docx_第6页
第6页 / 共72页
matlab矩阵操作.docx_第7页
第7页 / 共72页
matlab矩阵操作.docx_第8页
第8页 / 共72页
matlab矩阵操作.docx_第9页
第9页 / 共72页
matlab矩阵操作.docx_第10页
第10页 / 共72页
matlab矩阵操作.docx_第11页
第11页 / 共72页
matlab矩阵操作.docx_第12页
第12页 / 共72页
matlab矩阵操作.docx_第13页
第13页 / 共72页
matlab矩阵操作.docx_第14页
第14页 / 共72页
matlab矩阵操作.docx_第15页
第15页 / 共72页
matlab矩阵操作.docx_第16页
第16页 / 共72页
matlab矩阵操作.docx_第17页
第17页 / 共72页
matlab矩阵操作.docx_第18页
第18页 / 共72页
matlab矩阵操作.docx_第19页
第19页 / 共72页
matlab矩阵操作.docx_第20页
第20页 / 共72页
亲,该文档总共72页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

matlab矩阵操作.docx

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

matlab矩阵操作.docx

matlab矩阵操作

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

第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=[123;456],M=[111213;141516]

R=

 1    2    3

 4    5    6

M=

 11   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

1.1.2 符号矩阵的生成

在MATLAB中输入符号向量或者矩阵的方法和输入数值类型的向量或者矩阵在形式上很相像,只不过要用到符号矩阵定义函数sym,或者是用到符号定义函数syms,先定义一些必要的符号变量,再像定义普通矩阵一样输入符号矩阵。

1.用命令sym定义矩阵:

这时的函数sym实际是在定义一个符号表达式,这时的符号矩阵中的元素可以是任何的符号或者是表达式,而且长度没有限制,只是将方括号置于用于创建符号表达式的单引号中。

如下例:

例1-3

>>sym_matrix=sym('[abc;Jack,HelpMe!

,NOWAY!

],')

sym_matrix=

[a        b         c]

[Jack  HelpMe!

  NOWAY!

]

>>sym_digits=sym('[123;abc;sin(x)cos(y)tan(z)]')

sym_digits=

[1       2       3]

[a       b       c]

[sin(x)cos(y)tan(z)]

2.用命令syms定义矩阵

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

例1-4

>>syms a b c;

>>M1=sym('Classical');

>>M2=sym('Jazz');

>>M3=sym('Blues')

>>syms_matrix=[a b c;M1,M2,M3;int2str([2 3 5])]

syms_matrix=

[  a     b    c]

[Classical Jazz Blues]

[  2     3    5]

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

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

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

例1-5

>>Digit_Matrix=[1/3 sqrt

(2)3.4234;exp(0.23)log(29)23^(-11.23)]

>>Syms_Matrix=sym(Digit_Matrix)

结果是:

Digit_Matrix=

0.3333   1.4142   3.4234

1.2586   3.3673   0.0000

Syms_Matrix=

[           1/3,                  sqrt

(2),               17117/5000]

[5668230535726899*2^(-52),7582476122586655*2^(-51),5174709270083729*2^(-103)]

注意:

矩阵是用分数形式还是浮点形式表示的,将矩阵转化成符号矩阵后,都将以最接近原值的有理数形式表示或者是函数形式表示。

1.1.3 大矩阵的生成

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

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

exm=[456   468  873   2 579  55

21   687  54  488   8  13

65  4567  88   98  21   5

456   68 4589 654   5 987

5488  10    9   6   33 77]

在MATLAB窗口输入:

>>example;

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

ans=

   5 6     %表示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

>>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

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

例1-8

>>A1=[1,2,3;4,5,6;7,8,9];A2=A1';A3=A1-A2;

>>A5(:

:

1)=A1,A5(:

:

2)=A2,A5(:

:

3)=A3

A5(:

:

1)=

    1    2    3

    4    5    6

    7    8    9

A5(:

:

2)=

    1    4    7

    2    5    8

    3    6    9

A5(:

:

3)=

    0   -2   -4

    2    0   -2

    4    2    0

1.1.5 特殊矩阵的生成

命令 全零阵

函数 zeros

格式 B=zeros(n)           %生成n×n全零阵

B=zeros(m,n)         %生成m×n全零阵

B=zeros([mn])       %生成m×n全零阵

B=zeros(d1,d2,d3…)   %生成d1×d2×d3×…全零阵或数组

B=zeros([d1d2d3…])  %生成d1×d2×d3×…全零阵或数组

B=zeros(size(A))      %生成与矩阵A相同大小的全零阵

命令 单位阵

函数 eye

格式 Y = eye(n)         %生成n×n单位阵

Y = eye(m,n)       %生成m×n单位阵

Y = eye(size(A))    %生成与矩阵A相同大小的单位阵

命令 全1阵

函数 ones

格式 Y=ones(n)            %生成n×n全1阵

Y=ones(m,n)          %生成m×n全1阵

Y=ones([mn])         %生成m×n全1阵

Y=ones(d1,d2,d3…)     %生成d1×d2×d3×…全1阵或数组

Y=ones([d1d2d3…])    %生成d1×d2×d3×…全1阵或数组

Y=ones(size(A))        %生成与矩阵A相同大小的全1阵

命令 均匀分布随机矩阵

函数 rand

格式 Y=rand(n)         %生成n×n随机矩阵,其元素在(0,1)内

Y=rand(m,n)       %生成m×n随机矩阵

Y=rand([mn])      %生成m×n随机矩阵

Y=rand(m,n,p,…)    %生成m×n×p×…随机矩阵或数组

Y=rand([mnp…])   %生成m×n×p×…随机矩阵或数组

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 产生一个3×4随机矩阵

>>R=rand(3,4)

R=

 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]内均匀分布的4阶随机矩阵

>>a=10;b=20;

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

x=

  19.2181  19.3547  10.5789  11.3889

  17.3821  19.1690  13.5287  12.0277

  11.7627  14.1027  18.1317  11.9872

  14.0571  18.9365  10.0986  16.0379

命令 正态分布随机矩阵

函数 randn

格式 Y=randn(n)          %生成n×n正态分布随机矩阵

Y=randn(m,n)        %生成m×n正态分布随机矩阵

Y=randn([mn])       %生成m×n正态分布随机矩阵

Y=randn(m,n,p,…)    %生成m×n×p×…正态分布随机矩阵或数组

Y=randn([mnp…])    %生成m×n×p×…正态分布随机矩阵或数组

Y=randn(size(A))     %生成与矩阵A相同大小的正态分布随机矩阵

randn                %无变量输入时只产生一个正态分布随机数

s=randn('state')       %产生包括正态发生器当前状态的2个元素的向量

s=randn('state',s)      %重置状态为s

s=randn('state',0)     %重置发生器为初始状态

s=randn('state',j)      %对于整数j重置状态到第j状态

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    2    1    5    4    6

命令 产生线性等分向量

函数 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=

    1    0    0    0

    0    2    0    0

    0    0    3    0

    0    0    0    4

命令 友矩阵

函数 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=

    1    1    1    1

    1   -1    1   -1

    1    1   -1   -1

    1   -1   -1    1

命令 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=

    1    2    3

r=

    7    8    9   10

>>h=hankel(c,r)

h=

    1    2    3    8

    2    3    8    9

    3    8    9   10

命令 Hilbert矩阵

函数 hilb

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

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

>>formatrat     %以有理形式输出

>>H=hilb(3)

H=

     1          1/2         1/3    

    1/2         1/3         1/4    

    1/3         1/4         1/5    

命令 逆Hilbert矩阵

函数 invhilb

格式 H=invhilb(n)   %产生n阶逆Hilbert矩阵

命令 Magic(魔方)矩阵

函数 magic

格式 M=magic(n)   %产生n阶魔方矩阵

例1-18

>>M=magic(3)

M=

     8           1           6     

     3           5           7     

     4           9           2     

命令 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=

     1           1           1           1     

     1           2           3           4     

     1           3           6          10     

     1           4          10          20     

>>A=pascal(3,1)

A=

     1           0           0     

     1          -1           0     

     1          -2           1     

>>A=pascal(3,2)

A=

     1           1           1     

    -2          -1           0     

     1           0           0     

命令 托普利兹矩阵

函数 toeplitz

格式 T=toeplitz(c,r)   %生成一个非对称的托普利兹矩阵,将c作为第1列,将r作为第1行,其余元素与左上角相邻元素相等。

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

例1-20

>>c=[12345];

>>r=[1.52.53.54.55.5];

>>T=toeplitz(c,r)

T=

     1          5/2         7/2         9/2        11/2    

     2           1          5/2         7/2         9/2    

     3           2           1          5/2         7/2    

     4           3           2           1          5/2    

     5           4           3           2           1     

命令 Wilkinson特征值测试阵

函数 wilkinson

格式 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

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

当前位置:首页 > 经管营销 > 经济市场

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

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