firezzt 发表于 2013-1-22 16:10

matlab矩阵详解

第1章  矩阵及其基本运算
MATLAB,即“矩阵实验室”,它是以矩阵为基本运算单元。因此,本书从最基本的运算单元出发,介绍MATLAB的命令及其用法。
1.1  矩阵的表示
1.1.1  数值矩阵的生成
1.实数值矩阵输入
MATLAB的强大功能之一体现在能直接处理向量或矩阵。当然首要任务是输入待处理的向量或矩阵。
不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一方括号([ ])内;当矩阵是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多重的方括号。如:
>> Time =
Time =
11  12  1  2  3  4  5  6  7  8  9  10
>> X_Data =
X_Data =
2.43  3.43
4.37  5.98
>> vect_a =
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=
C=
   1.0000             5.4000 + 0.5200i   0.8544         
   0.7071             5.3000             4.5000         
第2种方式
例1-2
>> R=, M=
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中输入符号向量或者矩阵的方法和输入数值类型的向量或者矩阵在形式上很相像,只不过要用到符号(symbol)矩阵定义函数sym,或者是用到符号定义函数syms,先定义一些必要的符号变量,再像定义普通矩阵一样输入符号矩阵。
1.用命令sym定义矩阵:
这时的函数sym实际是在定义一个符号表达式,这时的符号矩阵中的元素可以是任何的符号或者是表达式,而且长度没有限制,只是将方括号置于用于创建符号表达式的单引号中。如下例:
例1-3
>> sym_matrix = sym(',')
sym_matrix =


>> sym_digits = sym('')
sym_digits =



2.用命令syms定义矩阵
先定义矩阵中的每一个元素为一个符号变量,而后像普通矩阵一样输入符号矩阵。
例1-4
>> syms  a  b  c ;
>> M1 = sym('Classical');
>> M2 = sym(' Jazz');
>> M3 = sym('Blues')
>> syms_matrix = )]
syms_matrix =
[   a      b     c]

[   2      3     5]
把数值矩阵转化成相应的符号矩阵。
数值型和符号型在MATLAB中是不相同的,它们之间不能直接进行转化。MATLAB提供了一个将数值型转化成符号型的命令,即sym。
例1-5
>> Digit_Matrix =
>> 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]

注意:矩阵是用分数形式还是浮点形式表示的,将矩阵转化成符号矩阵后,都将以最接近原值的有理数形式表示或者是函数形式表示。
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时分别构造和,都是二维数组,而n=3时可以构造出三维数组。
例1-7
>> A1=;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=;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全零阵
B = zeros(d1,d2,d3…)    %生成d1×d2×d3×…全零阵或数组
B = zeros()   %生成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全1阵
Y = ones(d1,d2,d3…)      %生成d1×d2×d3×…全1阵或数组
Y = ones()     %生成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()       %生成m×n随机矩阵
Y = rand(m,n,p,…)     %生成m×n×p×…随机矩阵或数组
Y = rand()    %生成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  产生一个在区间内均匀分布的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)      

firezzt 发表于 2013-1-22 16:11

自顶一个{:3_59:}{:3_59:}{:3_59:}

firezzt 发表于 2013-1-22 16:11

{:soso_e194:}

快乐嘟嘟 发表于 2013-1-25 09:32

感谢楼主无私分享

firezzt 发表于 2013-1-27 17:20

wanzun......

{徐雷} 发表于 2013-1-27 17:58

这个好啊~~~{:3_48:}{:3_48:}{:3_48:}

firezzt 发表于 2013-1-28 18:52

挽尊。。。。。

赛心情 发表于 2013-2-26 09:17

感谢楼主无私分享!{:3_48:}

fjnanyuan 发表于 2013-4-5 12:27

感觉东西看不多啊

fjnanyuan 发表于 2013-4-5 13:51

又看了一次 不错吧
页: [1] 2
查看完整版本: matlab矩阵详解