第2章 MATLAB程序设计 2.1 Matlab的变量与数组 2.2 Matlab的运算符 2.3 Matlab的流程控制 2.4M文件 2.5文件I/0函数 阳成大学 Liaocheng University
1 第2章 MATLAB程序设计 2.1 Matlab的变量与数组 2.2 Matlab的运算符 2.3 Matlab的流程控制 2.4 M文件 2.5 文件I/O函数
程序设计:自顶向下,逐步细化 即:将较大任务分解成若干小任务,对其 独立编程、编译和调试,再集成为一个总 程序,实现系统的仿真过程。 程序设计一般包括: >变量与数组的定义 >数组的运算 >程序流程设计 >程序的调试 阳成大学 Liaocheng University
2 程序设计: 自顶向下,逐步细化 即:将较大任务分解成若干小任务,对其 独立编程、编译和调试,再集成为一个总 程序,实现系统的仿真过程。 程序设计一般包括: ¾ 变量与数组的定义 ¾ 数组的运算 ¾ 程序流程设计 ¾ 程序的调试
2.1 Matlab的变量与数组 MATLAB的基本运算单位是数组。每种 数据都是数组或矩阵的形式,以变量形式 存储在工作空间。 数组按维数分类: 空数组:[] 一维数组(向量) 二维数组(矩阵) 多维数组 阳成大学 Liaocheng University
3 2.1 Matlab的变量与数组 MATLAB 的基本运算单位是数组 。每种 数据都是数组或矩阵的形式,以变量形式 存储在工作空间。 数组按维数分类: 空数组: [ ] 一维数组(向量) 二维数组(矩阵) 多维数组
2.1.1 atlab的数据类型 数 组 Logic Char Numeric cell structure Java classes Function handle 逻辑型 字符型 数值型 元胞型 结构体型 Java类 函数句柄 User classes 用户类型 int8、int16 single double 单精度型 双精度型 int32、int64 uint8、uint16、 uint32、uint64 阳成大学 Liaocheng University
4 2.1.1 Matlab的数据类型
1.数值类型Numeric) 1)整数类型(Interger) 数据类型 表苏范通 类型转换函数 无符号8位整数uint8 028-1 uint80 无符号16位整数uint16 026-1 uint160 无符号32位整数uint32 022-1 uint320 无符号64位整数uint64 024-1 uint640) 有符号8位整数int8 -27~27-1 int80 有符号16位整数int16 -215~215-1 int160 有符号32位整数int32 -231~231.1 int320 有符号64位整数nt64 -263~263-1 int640) 5 阳成大学 Liaocheng University
5 数据类型 表示范围 类型转换函数 无符号8位整数uint8 0~28 -1 uint8() 无符号16位整数uint16 0~216 -1 uint16() 无符号32位整数uint32 0~232 -1 uint32() 无符号64位整数uint64 0~264 -1 uint64() 有符号8位整数int8 2-7~27 -1 int8() 有符号16位整数int16 2-15~215 -1 int16() 有符号32位整数int32 2-31~231 -1 int32() 有符号64位整数int64 2-63~263 -1 int64() 1. 数值类型(Numeric) 1)整数类型(Interger) -27 ~ 27-1 -215 ~ 215-1 -231 ~ 231-1 -263 ~ 263-1
2)浮,点数类型Floating-Point) 数据类型 存储空间 表示范围 类型转换函数 单精度型 4字节 -3.40282×1038 single0 single +3.40282×1038 双精度型 8字节 -1.79769×10308 double O double +1.79769×10308 小Workspace 日回☒ File Edit View Graphies Debug卫esktop Window Help 省国迥眙鲁 Stack:Base Name Value Class Bytes 田x 2 nt8、 1 田x1 0.33333 double 1 d 田xx 1 int8 田y 127 int8 127 single 4 田z 2 int16 2 6 阳成大学 Liaocheng University
6 2) 浮点数类型 (Floating-Point) -1.79769×10 double() 308 ~ +1.79769×10308 双精度型 8字节 double -3.40282×10 single() 38 ~ +3.40282×1038 单精度型 4字节 single 数据类型 存储空间 表示范围 类型转换函数
eg数据类型转换 >>x=int8(2.3) x=2 >>y=int8(2.3e16%强制转换 y=127 >>z=int16(2.3) z=2 >>x1=1/3 x1=0.3333 >>xx=x*x1 xx=1(按int8类型) >>y1=single(y) y1=127 >>y2=double(y) y2=127 阳成大学 Liaocheng University
7 eg. 数据类型转换 >>x=int8(2.3) >>y=int8(2.3e16) %强制转换 >>z=int16(2.3) >>x1=1/3 >>xx=x*x1 >>y1=single(y) >>y2=double(y) x=2 y = 127 z = 2 x1 = 0.3333 xx = 1 (按int8类型) y1 = 127 y2 = 127
3)复数类型 MATLAB没有直接的复数类型,但可以 用特殊变量“”或“”表示虚数的单位。 复数的产生可以有几种方式: z=a+b*i或z=a+b*j z=a+bi或z=a+bj(当b为常数时) z=r*exp(i*theta) z=complex(a,b) 阳成大学 Liaocheng University
8 3) 复数类型 MATLAB没有直接的复数类型,但可以 用特殊变量“i”或“j”表示虚数的单位。 复数的产生可以有几种方式: z=a+b*i 或 z=a+b*j z=a+bi 或 z=a+bj(当b为常数时) z=r*exp(i*theta) z=complex(a,b)
4)Inf和NaN Inf和-Inf分别表示正无穷大和负无穷 大,如2/0、exp(3000)、log0)等运算结果 均为Inf。 NaN(Not a Number))来表示一个既 不是实数也不是复数的数值,如0/0、 Ihf/Inf等运算结果均为NaN。 阳成大学 Liaocheng University
9 4) Inf和NaN Inf和-Inf分别表示正无穷大和负无穷 大,如2/0、exp(3000)、log(0)等运算结果 均为Inf。 NaN(Not a Number)来表示一个既 不是实数也不是复数的数值,如0/0、 Inf/Inf等运算结果均为NaN
eg. >>a=3; >>b=4; >>c=complex(a,b) C= 3.0000+4.0000i >>r=real(c) r=3 >>I=imag(c) =4 >>t=angle(c)*180/pi t= 53.1301 >>cc=conj(c) %共轭复数 cc= 3.0000-4.0000i 10 阳成大学 Liaocheng University
10 eg. >>a=3; >>b=4; >>c=complex(a,b) >>r=real(c) >>I=imag(c) >>t=angle(c)*180/pi >>cc=conj(c) %共轭复数 c = 3.0000 + 4.0000i r=3 I=4 t = 53.1301 cc = 3.0000 - 4.0000i