MATLAB学习资料(自学版)

更新时间:2023-09-14 00:17:01 阅读量: 教学研究 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第2章 MATLAB数值计算

MATLAB的数学计算=数值计算+符号计算

其中符号计算是指使用未定义的符号变量进行运算,而数值计算不允许使用未定义的变量。

2.1 变量和数据

2.1.1数据类型

数据类型包括:数值型、字符串型、元胞型、结构型等 数值型=双精度型、单精度型和整数类

整数类=无符号类(uint8、uint16、uint32、uint64)和符号类整数(int8、int16、int32、int64)。

2.1.2数据

1. 数据的表达方式

? 可以用带小数点的形式直接表示 ? 用科学计数法

? 数值的表示范围是10-309~10309。 以下都是合法的数据表示: -2、5.67、2.56e-56(表示2.56×10-56)、4.68e204(表示4.68×10204)

2. 矩阵和数组的概念

在MATLAB的运算中,经常要使用标量、向量、矩阵和数组,这几个名称的定义如下:

? 标量:是指1×1的矩阵,即为只含一个数的矩阵。 ? 向量:是指1×n或n×1的矩阵,即只有一行或者一列的矩阵。

? 矩阵:是一个矩形的数组,即二维数组,其中向量和标量都是矩阵的特例,0×0矩阵为空矩阵([])。

? 数组:是指n维的数组,为矩阵的延伸,其中矩阵和向量都是数组的特例。

3. 复数

复数由实部和虚部组成,MATLAB用特殊变量“i”和“j”表示虚数的单位。复数运算不需要特殊处理,可以直接进行。

复数可以有几种表示: z=a+b*i或z=a+b*j

z=a+bi或z=a+bj(当b为标量时) z=r*exp(i*theta)

? 得出一个复数的实部、虚部、幅值和相角。 a=real(z) %计算实部 b=imag(z) %计算虚部 r=abs(z) %计算幅值 theta=angle(z) %计算相角 说明:

复数z的实部a=r*cos(θ); 复数z的虚部b=r*sin(θ); 复数z的幅值r?a2?b2;

复数z的相角theta=arctg(b/a),以弧度为单位。

a=1-2*i

a =

1.0000 - 2.0000i

real(a)

ans = 1

imag(a)

ans = -2

abs(a)

ans =

2.2361

angle(a)*180/pi

%以角度为单位计算相角

ans =

-63.4349

2.1.3变量

1. 变量的命名规则

? 变量名区分字母的大小写。例如,“a”和“A”是不同的变量。

? 变量名不能超过63个字符,第63个字符后的字符被忽略,对于MATLAB6.5版以前的变量名不能超过31个字符。

? 变量名必须以字母开头,变量名的组成可以是任意字母、数字或者下划线,但不能含有空格和标点符号(如,。%等)。例如,“6ABC”、“AB%C”都是不合法的变量名。

? 关键字(如if、while等)不能作为变量名。

2. 特殊变量

MATLAB有一些自己的特殊变量,当MATLAB启动时驻留在内存。

表2.1 特殊变量表

特殊变量 ans pi eps flops inf NaN或nan i或 j nargin nargout realmin realmax 取值 运算结果的默认变量名 圆周率π 计算机的最小数 浮点运算数 无穷大,如1/0 非数,如0/0、∞/∞、0×∞ i=j= 函数的输入变量数目 函数的输出变量数目 最小的可用正实数 最大的可用正实数

? 在MATLAB中系统将计算的结果自动赋给名为“ans”的变量。

2*pi

ans =

6.2832

2.2 矩阵和数组

MATLAB最基本也是最重要的功能就是进行实数或复数矩阵的运算。

2.2.1矩阵输入

(1) 矩阵元素应用方括号([])括住;

(2) 每行内的元素间用逗号或空格隔开; (3) 行与行之间用分号或回车键隔开; (4) 元素可以是数值或表达式。

1. 通过显式元素列表输入矩阵

c=[1 2;3 4;5 3*2] % [ ]表示构成矩阵,分号分隔行,空格分隔元素

c =

1 2 3 4 5 6

用回车键代替分号分隔行:

c=[1 2

3 4 5 6]

1 2 3 4 5 6

2. 通过语句生成矩阵

(1) 使用from:step:to方式生成向量 from:to

from:step:to 说明:

from、step和to分别表示开始值、步长和结束值。 当step省略时则默认为step=1;

当step省略或step>0而from>to时为空矩阵,当step<0而from

x1=2:5

x1 =

2 3 4 5 x2=2:0.5:4

x2 =

2.0000 2.5000 3.0000 3.5000 4.0000 x3=5:-1:2

x3 =

5 4 3 2 x4=2:-1:3 %空矩阵

x4 =

Empty matrix: 1-by-0 x5=2:-1:0.5

x5 =

2 1

x6=[1:2:5;1:3:7] %两行向量构成矩阵

x6 =

1 3 5 1 4 7

(2) 使用linspace和logspace函数生成向量 linspace(a,b,n) 说明:

a、b、n三个参数分别表示开始值、结束值和元素个数。

生成从a到b之间线性分布的n个元素的行向量,n如果省略则默认值为100。

? logspace用来生成对数等分向量,它和linspace一样直接给出元素的个数而得出各个元素的值。

logspace (a,b,n) 说明:

a、b、n三个参数分别表示开始值、结束值和数据个数,n如果省略则默认值为50。生成从10a到10b之间按对数等分的n个元素的行向量。

【例2.2】用linspace和logspace函数生成行向量。

x1=linspace(0,2*pi,5) %从0到2*pi等分成5个点

x1 =

0 1.5708 3.1416 4.7124 6.2832

x2=logspace(0,2,3) %从1到100对数等分成3个点

x2 =

1 10 100

3. 由矩阵生成函数产生特殊矩阵

MATLAB提供了很多能够产生特殊矩阵的函数,各函数的功能如表2.2所示。

表2.2 矩阵生成函数

函数名 zeros(m,n) 功能 产生m×n的全0矩阵 例子 输入 zeros(2,3) 结果 ans = 0 0 0 0 0 0 ones(m,n) 产生m×n的全1矩阵 ones(2,3) ans = 1 1 1 1 1 1 ans = 0.9501 0.6068 0.8913 0.2311 0.4860 0.7621 randn(2,3) ans = -0.4326 0.1253 -1.1465 -1.6656 0.2877 1.1909 magic(N) 产生N阶魔方矩阵(矩阵的行、列和对角线上元素的和相等) 产生m×n的单位矩阵 magic(3) ans = 8 1 6 3 5 7 4 9 2 ans = 1 0 0 0 1 0 0 0 1 rand(m,n) 产生均匀分布的随机矩阵,元素取值范围0.0~1.0。 randn(m,n) 产生正态分布的随机矩阵 rand(2,3) eye(m,n) eye(3) 注意:

本文来源:https://www.bwwdw.com/article/4jdh.html

Top