matlab 按照概率生成数字_MATLAB入门---MATLAB计算基础

b375e4dd8b5afede8ff2b7100752b696.png

MATLAB是一门计算语言,它的运算指令和语法基于一系列基本的矩阵运算以及它们的扩展,它还支持复数这一数值元素,这也是MATLAB区别于其他高级语言的最大特点之一,它给许多领域的计算带来了极大的方便。

1.1MATLAB数值类型

MATLAB包括了四种基本数据运算,即双精度数组、字符串数组、元胞数组、构架数组。数值之间的相互转换,这就为其计算功能开辟了广阔的空间。

1.变量与常量

变量,是数值计算的基本单元。

MATLAB中的变量是无须事先定义的,这与C语言等高级语言不同。一个变量以其名称在语句命令中合法出现一次就可以被定义了。运算表达式变量中不允许有未被定义的变量,也不需要预先定义变量的类型,MATLAB会自动生成变量,并根据变量的操作来确定其类型。就这点来看,为使用者的操作提供了方便。

(1)MATLAB变量命名规则

1)变量名区分大小写,也就是说A和a表示的是不同的变量;

2)变量名是以英文字母开始的,第一个字母后面可以使用字母、数字、下划线,但不能使用空格和标点符号;

3)变量名的长度规定:不能超过31位,超过的部分将被忽略处理;

4)某些常量也可以作为变量使用,如i在MATLAB中表示虚数单位,但也可以作为变量使用。

常量,就是指的那些在MATLAB中已预先定义其数值的变量,我们把默认的常量做了一个表格,如下所示:

5790b97ed98de5c4077c4f5aa3a18bd4.png

(2)MATLAB变量的显示

任何MATLAB语句的执行结果都可以在屏幕上显示,同时赋值给指定的变量,没有指定变量时,赋值给一个特殊的变量ans,数据的显示格式由format命令控制。

format只影响结果的显示,不影响其计算与存储。

MATLAB总是以双字长浮点数(双精度)来执行所有的运算。如果结果为整数,则显示没有小数;如果结果不是整数,则输出形式有下图的几种形式:

6711f54cf59fe0e344899b08c721a741.png

2.字符串

字符是MATLAB中符号运算的基本元素,也是文字等表达方式的基本元素,在MATLAB中,字符串作为字符数组用单引号(')引用到程序中,还可以通过字符串运算组成复杂的字符串。字符串数值和数字数值之间可以进行相互转化,也可以执行字符串的有关操作。

3.元胞数组

元胞是元胞数组(Cell Array)的基本组成部分。

元胞数组和数字数组很相似,以下标来区分,单元胞数组由元胞和元胞内容两部分组成。用花括号{ }表示元胞数组的内容,用圆括号( )表示元胞元素。

与一般的数字数组不同,元胞可以存放任何类型、任何大小的数组,而且同一个元胞数组中各元胞的内容可以不同。

例1:元胞数组创建与显示实例

解:MATLAB程序代码如下:

    A(1,1)={'An example of cell array'};
    A(1,2)={[1 2;3 4]};A{2,1}=tf(1,[1,8]);A{2,2}={A(1,2);'This is an example'};
    celldisp(A)    %显示该元胞数组

元胞数组A的第1行用元胞数组标志法建立一个字符串和一个矩阵;第2行用元胞内容编址法,建立一个传递函数和一个由两个元素组成的元胞组,该院包租分别是矩阵和字符串,最后,用celldisp函数显示该元胞数组A。

4.构架数组

与元胞数组相似,构架数组(Structure Array)也能存放各类数据,使用指针方式传递数值。

构架数组由结构变量名和属性名组成,用指针操作符“.“连接结构变量名和属性名。

例如,可用parameter.temperature表示某一对象的温度参数,用parameter.humidity表示某一对象的湿度参数等,因此,该结构数组parameter由两个属性组成。

5.对象

面对对象的MATLAB语言采用了多种对象,如自动控制中常用的传递函数模型对象(tf object)、状态空间模型对象(ss object)和零极点模型对象(zpk object),一些对象之间可以相互转换,例如可以从传递函数模型对象转化为零极点模型对象,这将在后面具体介绍。

1.2关系运算和逻辑运算

除了传统的数学运算外,MATLAB还支持关系运算和逻辑运算。

如果你已经有了一些编程的经验,那对这些运算不会陌生。

作为所有关系表达式和逻辑表达式的输入,MATLAB把任何非0数值当作真,把0当作假。所有关系表达式和逻辑表达式的输出,对于真输出1,对于假输出0.

MATLAB为关系运算和逻辑运算提供了关系操作符和逻辑操作符,如下两表所示:

21944dc5494265d1adfa51633b823e74.png
关系运算符符号

bd6988e67f218e82952c642d0e3e648a.png
逻辑运算符

除此之外,MATLAB还提供了若干关系运算函数和逻辑运算函数,分别如下表所示:

08c4294c9ed44da6c98bb58099c5bd5f.png
关系运算函数

06a9e31a16de1c4b19e3f3515cfac01f.png
逻辑运算函数

1.3矩阵及其运算

MATLAB最大的特色就是其强大的矩阵计算功能,在MATLAB中所有的计算都是以矩阵为单元进行的,可见矩阵是MATLAB的核心。

1.3.1矩阵的创建

由m行n列构成的数组a称为

阶矩阵,它总共由
个元素组成,矩阵元素记为
,其中i表示行,j表示列。

当m=n时,矩阵a称为方阵。当

时,所有的
,且m=n,得到的矩阵称为对角阵。

当对角阵的对角线上的元素全为1时,称为单位阵,记为I。

对于

阶矩阵w,当
时,称w是a的转置矩阵,记为

对于a为

的形式时,称a是m个元素的列向量,对于a为
的形式时,称a是n个元素的行向量。

矩阵的表示形式和数组相似,它以左方括号”[“开始,以右方括号”]“结束,每一行元素结束用行结束符号(分号”;“)或回车符分割,每个元素之间用元素分割符号(空格或”,“)分隔。建立矩阵的方法有直接输入矩阵元素、在现有的矩阵中添加或删除元素、读取数据文件、采用现有矩阵组合、矩阵转向、矩阵移位及直接建立特殊矩阵等。

例2:矩阵创建实例

解:MATLAB程序代码如下。

>>a=[1 2 3;4 5 6]

运行结果是创建了一个

的矩阵a,a的第1行由1、2、3这3个元素组成,第2行由4、5、6这3个元素组成,输出结果如下:
a = 1    2    3
    4    5    6

接着输入:

>>b=[a;11,12,13]    %添加一行元素[11,12,13]

运行结果是创建了一个

的矩阵b,b矩阵是在a矩阵的基础上添加一行元素11、12、13,组成一个
矩阵,输出结果如下:
b = 1    2    3
    4    5    6
    11   12   13

MATLAB中对矩阵元素的访问如下所示:

单个元素的访问:
,访问了第3行和第2列交叉的元素;

整列元素的访问:
,访问了第3列中的所有元素;

整行元素的访问:
,访问了第1行中的所有元素;

整块元素的访问:
,访问了一个
的子块矩阵。

MATLAB提供了很多个特殊矩阵的生成,下表列出了一些常用的生成函数,关于其他的特殊矩阵生成函数及其使用格式,请参见联机帮助:

c04f1eddbc281cd0052c9bc4fae19aa2.png
MATLAB常用特殊矩阵生成函数

例3:特殊矩阵生成函数使用实例。

解:MATLAB程序代码如下。

>>a=[1,2,3;4,5,6;7,8,9]; b=tril(a)   %生成下三角矩阵

运行结果是生成了b矩阵,它是调用下三角矩阵生成函数tril( )生成的a矩阵的下三角矩阵,输出结果如下。

b=1    0    0
  4    5    0
  7    8    9

1.32矩阵的运算

矩阵与矩阵之间可以进行如下表所示的基本运算。

(注:在进行左除”/“和右除”“时,两矩阵的维数必须相等。)

4fdda5d6a82d9b509fb96770cf5f74a9.png
矩阵的基本运算

例4:矩阵基本运算实例。

解:MATLAB程序代码如下。

>>a=[1,2;3,4];    b=[3,5;2,9];    div1=a/b;    %矩阵的左除
>>div2=ba    %矩阵的右除

两矩阵a与b进行了左除和右除运算,输出结果如下。

div1=0.2941    0.0588               div2=-0.3529    -0.1176
     1.1176    -0.1765                   0.4118    0.4706

MATLAB提供了多种关于矩阵的函数,下表列出了一些常用的矩阵函数运算。

f3aa29c7944ba97bf1ce8de2259f035a.png
常用矩阵函数运算

例5:矩阵函数运算实例。

解:MATLAB程序代码如下。

>>a=[1,3,5;2,4,6;7,9,13];    [b,c]=eig(a)    %求取矩阵的特征值和特征向量

通过函数eig( )计算矩阵a的特征向量b和特征值c,输出结果如下。

b=-0.3008    -0.7225    0.2284
  -0.3813    -0.3736    -0.8517
  -0.8742     0.5817    0.4717
c=19.3341          0        0
   0         -1.4744        0
   0               0    0.1403

矩阵分解常用于方程求根,下表列出了一些常用的矩阵分解运算。

bcd5d9bb10f772eae3c49d26a59e5107.png
常用矩阵分解运算函数

例6:矩阵分解运算函数使用实例。

解:MATLAB程序代码如下。

>>a=[6,2,1;2,3,1;1,1,1];   [L,U,P]=lu(a)    %对矩阵进行LU分解

通过函数lu( )对矩阵a进行LU分解,得到上三角阵U、下三角阵L、置换矩阵P,输出结果如下。

L=1.0000           0           0            U=6.0000    2.0000    1.0000
  0.3333      1.0000           0              0         2.3333    0.6667
  0.1667      0.2857      1.0000              0         0         0.6429
P=1    0    0
  0    1    0
  0    0    1

(#)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值