matlab非同秩矩阵相乘_MATLAB矩阵运算(1)

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

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('[a b c;Jack,Help Me!,NO WAY!],')

sym_matrix =

[a         b          c]

[Jack   Help Me!   NO WAY!]

>> sym_digits = sym('[1 2 3;a b c;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([m n])        %生成m×n全零阵

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

B = zeros([d1 d2 d3…])   %生成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([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阵

命令  均匀分布随机矩阵

函数 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值