MATLAB基础知识

1 基础知识

1.1 MATLAB简介

  • whos :产生一个在当前工作区域内所有变量和数组状况表,在Command Window直接输入whos,显示的是Workspace所有变量的属性。
  • help :查询工能。
  • ver :MATLAB版本信息。

1.2 矩阵表示

>> T=[11 12 1 2 3 4 5 6 7 8 9 10]
T =
    11    12     1     2     3     4     5     6     7     8     9    10
>> X=[2.32 3.43;4.37 5.98]
X =
    2.3200    3.4300
    4.3700    5.9800
>> MB=[1 2 4;2 3 3;5 4 5]
MB =
     1     2     4
     2     3     3
     5     4     5
>> Null=[]
Null =
     []
>> a=1.7;b=3/25;
>> C=[1,3*a+i*b,b*sqrt(a);sin(pi/5),a+7*b,3.9+1]
C =
   1.0000 + 0.0000i   5.1000 + 0.1200i   0.1565 + 0.0000i
   0.5878 + 0.0000i   2.5400 + 0.0000i   4.9000 + 0.0000i
>> 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
>> RM=R+i*M
RM =
   1.0000 +11.0000i   2.0000 +12.0000i   3.0000 +13.0000i
   4.0000 +14.0000i   5.0000 +15.0000i   6.0000 +16.0000i
  • sym
>> sym_d=str2sym(\'[1 2 3;a b c;sin(x) cos(y) tan(z)]\')
sym_d =
[      1,      2,      3]
[      a,      b,      c]
[ sin(x), cos(y), tan(z)]
>> sym_m=str2sym(\'[a b c;Jack Help_Me NO_WAY]\')
sym_m =
[    a,       b,      c]
[ Jack, Help_Me, NO_WAY]
>> syms a b c
>> M1=sym(\'Classical\');
>> M2=sym(\'Claysw\');
>> M3=sym(\'yellow\');
>> yswM123=[a,b,c;M1,M2,M3;2,3,5;5,4,6]
yswM123 =
[         a,      b,      c]
[ Classical, Claysw, yellow]
[         2,      3,      5]
[         5,      4,      6]
  • 数值型转换为字符型
>> Digit_Ma=[1/3 sqrt(3) 3.1;exp(0.3) log(10) 23^.5]
Digit_Ma =
    0.3333    1.7321    3.1000
    1.3499    2.3026    4.7958
>> Syms_Ma=sym(Digit_Ma)
Syms_Ma =
[                               1/3,                           3^(1/2),    31/10]
[ 3039611811401035/2251799813685248, 2592480341699211/1125899906842624, 23^(1/2)]

特殊矩阵

(1) 全零阵

  • 函数zeros格式
    • B=zeros(n) % 生成n*n全零阵
    • B=zeros(m,n) % 生成m*n全零阵
    • B=zeros([m,n]) % 生成m*n全零阵
    • B=zeros(d1,d2,d3...) % 生成d1d2d3*...全零阵
    • B=zeros([d1,d2,d3,...]) % 生成d1d2d3*...全零阵
    • B=zeros(size(A)) % 生成与矩阵A大小相同的全零阵

(2) 单位阵

  • 函数eye格式
    • Y=eye(n) % 生成n*n单位阵
    • Y=eye(m,n) % 生成m*n单位阵
    • Y=eye(size(A)) % 生成与矩阵A大小相同的单位阵

(3) 全1阵

  • 函数ones格式
    • B=ones(n) % 生成n*n全1阵
    • B=ones(m,n) % 生成m*n全1阵
    • B=ones([m,n]) % 生成m*n全1阵
    • B=ones(d1,d2,d3...) % 生成d1d2d3*...全1阵
    • B=ones([d1,d2,d3,...]) % 生成d1d2d3*...全1阵
    • B=ones(size(A)) % 生成与矩阵A大小相同的全1阵

(4) 均匀分布随机矩阵

  • 函数rand格式
    • B=rand(n) % 生成n*n随机矩阵,其元素在(0,1)内
    • B=rand(m,n) % 生成m*n随机矩阵
    • B=rand([m,n]) % 生成m*n随机矩阵
    • B=rand(d1,d2,d3...) % 生成d1d2d3*...随机矩阵
    • B=rand([d1,d2,d3,...]) % 生成d1d2d3*...随机矩阵
    • B=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)) % 每次重置到不同状态

(5) 正态分布随机矩阵

  • 函数randn格式
    • B=randn(n) % 生成n*n正态分布随机矩阵
    • B=randn(m,n) % 生成m*正态分布随机矩阵
    • B=randn([m,n]) % 生成m*n正态分布随机矩阵
    • B=randn(d1,d2,d3...) % 生成d1d2d3*...正态分布随机矩阵
    • B=randn([d1,d2,d3,...]) % 生成d1d2d3*...正态分布随机矩阵
    • B=randn(size(A)) % 生成与矩阵A大小相同的正态分布随机矩阵
    • randn % 无变量输入时只产生一个正态分布随机数
    • s=randn(\'state\') % 产生包括均匀发生器当前状态的2个元素的向量
    • randn(\'state\',s) % 使状态重置为s
    • randn(\'state\',0) % 重置发生器到初始状态
    • randn(\'state\',j) % 对整数j重置发生器到第j个状态
    • randn(\'state\',sum(100*clock)) % 每次重置到不同状态

(6) 产生随机排列

  • 函数randperm格式
    • p=randperm(n) % 产生1~n之间整数的随机数排列

(7) 产生线性等分量函数

  • 函数linspace格式
    • y=linspace(a,b) % 在(a,b)上产生100个线性等分点
    • y=linspace(a,b,n) % 在(a,b)上产生n个线性等分点

(8) 产生对数等分向量

  • 函数logspace格式
    • y=logspace(a,b) % 在\((10^a,10^b)\)上产生50个对数等分向量
    • y=logspace(a,b,n) % 在\((10^a,10^b)\)上产生n个对数等分向量

(9) 计算矩阵中元素个数

  • 函数numel格式
    • n=numl(a) % 返回矩阵A中元素的个数

(10) 产生以输入元素为对角元素的矩阵

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

(11) 友矩阵

  • 函数compan格式
    • A=compan(u) % u为多项式系统向量,A为友矩阵,A的第1行元素为-u(2:n)/u(1),其中u(2:n)为u的第2到n个元素,A的特征值就是多项式的特征根。

(12) Hadamard矩阵

  • 函数hamdamard格式
    • H=hamdamard(n) % 返回n阶Hamdamard矩阵

(13) hankel方阵

  • 函数hankel格式
    • H=hankel(c) % 第1列元素为c,反三角一下元素为0
    • H=hankel(c,r) % 第1列元素为c,最后一元素为r。如果c的最后一个元素与r的第一个元素不同,交叉位置的元素取为c的最后一个元素

(14) Hilbert矩阵

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

(15) 逆Hilbert矩阵

  • 函数invhilb格式
    • H=invhilb(n) % 返回n解逆Hilbert矩阵

(16) Magic(魔方)矩阵

  • 函数magic格式
    • M=magic(n) % 产生n解魔方矩阵

(17) Pascal矩阵

  • 函数pascal格式
    • A=pascal(n) % 产生n阶Pascal矩阵。它是对称正定矩阵,元素由Pascal三角组成。它的逆矩阵的所有元素都是整数。
    • A=pascal(n,1) % 返回由下三角的Cholesky系数组成的Pascal矩阵
    • A=pascal(n,2) % 返回pascal(n,1)的转置和交换的形成

(18) 托普利兹矩阵

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

(19) Wilkinson特征值测试阵

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