第2章matlab基本数据类型及运算资料

上传人:E**** 文档编号:101292153 上传时间:2019-09-27 格式:PPT 页数:55 大小:266.58KB
返回 下载 相关 举报
第2章matlab基本数据类型及运算资料_第1页
第1页 / 共55页
第2章matlab基本数据类型及运算资料_第2页
第2页 / 共55页
第2章matlab基本数据类型及运算资料_第3页
第3页 / 共55页
第2章matlab基本数据类型及运算资料_第4页
第4页 / 共55页
第2章matlab基本数据类型及运算资料_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《第2章matlab基本数据类型及运算资料》由会员分享,可在线阅读,更多相关《第2章matlab基本数据类型及运算资料(55页珍藏版)》请在金锄头文库上搜索。

1、第2章 Matlab基本数据类型及运算,主要内容,概述 变量和常量 基本数值类型 字符串 结构体 基本运算,2.1 概述,基本数据类型 数值数据:双精度型、单精度数、带符号整数和无符号整数 逻辑类型 字符数据 结构(Structure)、单元(Cell) 多维矩阵、稀疏矩阵(Sparse) 矩阵是MATLAB最基本、最重要的数据对象。单个数据可以看成是矩阵的特例。,2.2 变量和常量,变量的命名 在MATLAB中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多19个字符。 在MATLAB中,变量名区分字母的大小写。 赋值语句 变量=表达式 表达式 变量的显示 一般地,运算结果在命令

2、窗口中显示出来。如果在语句的最后加分号,那么,MATLAB仅仅执行赋值操作,不再显示运算的结果。 在MATLAB语句后面可以加上注释,注释以%开头,后面是注释的内容。,变量和常量,例2.1 计算表达式的值,并将结果赋给变量x,然后显示出结果。 数据的输出格式 可以用format命令设置或改变数据输出格式。format命令的格式为: format 格式符 format命令只影响数据输出格式,而不影响数据的计算和存储。, x=2+sin(pi/180) x = 2.0175 %计算表达式的值,变量和常量,内存变量的管理 显示:who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量

3、名清单。 A=1 A = 1 who Your variables are: A whos Name Size Bytes Class Attributes A 1x1 8 double,变量和常量,删除:clear命令用于删除MATLAB工作空间中的变量。 内存变量文件: 利用MAT文件(.mat)可以把当前MATLAB工作空间中的一些有用变量长久地保留下来。 MAT文件的生成和装入由save和load命令来完成。常用格式为: save 文件名 变量名表 -append-ascii load 文件名 变量名表 -ascii,变量和常量,常量,变量和常量,eps、realmax、realmin

4、 三个常量具体的数值与运行MATLAB的计算机相关,不同的计算机系统可能具有不同的数值 eps ans = 2.2204e-016 realmax ans = 1.7977e+308 realmin ans = 2.2251e-308,变量和常量,常量数值可以修改 pi=100 pi = 100 clear pi ans = 3.1416,变量和常量,Inf,NaN Inf,NaN可用于计算,计算结果可能为inf或NaN。 进行数据转换时,Inf将获取相应数据类型的最大值,NaN返回相应整数数据类型的数值0,浮点数类型则仍然为NaN 例:NaN和Inf运算示例 A=Inf; class(A)

5、ans = Double B=int16(A) B = 32767,2.3 基本数值类型,基本数值类型,MATLAB和C语言在处理数据类型和变量时的区别 在C语言中,任何变量在使用之前必须声明,然后赋值,在声明变量时就指定了变量的数据类型 在MATLAB中,任何数据变量都不需要预先声明,MATLAB将自动地将数据类型设置为双精度类型,基本数值类型,class函数 可以用来获取变量或对象的类型 可以用来创建用户自定义的数据类型 A=0.5 A = 0.5000 B=int16(A) B = 1 class(B) ans = int16,2.4 逻辑数据类型,逻辑数据类型 逻辑数据类型是仅具有两个

6、数值的一种数据类 True 用1表示 False 用0表示 任何数值都可以参与逻辑运算 非零值看作逻辑真 零值看作逻辑假 逻辑类型的数据只能通过数值类型转换,或者使用特殊的函数生成相应类型的数组或者矩阵,逻辑数据类型,创建逻辑类型数据的函数,逻辑数据类型,例2.2 创建逻辑类型数组 A=1 -2 3;0 2 4;3 1 6 A = 1 -2 3 0 2 4 3 1 6 logical(A) ans = 1 1 1 0 1 1 1 1 1, true(size(A) ans = 1 1 1 1 1 1 1 1 1 false(size(A) ans = 0 0 0 0 0 0 0 0 0,逻辑数

7、据类型,使用true或者false函数创建逻辑类型数组时,若不指明参数,则创建一个逻辑类型的标量 a=true a = 1 b=false b = 0 c=1 c = 1 isnumeric(a) ans = 0, isnumeric(c) ans = 1 islogical(a) ans = 1 islogical(b) ans = 1 islogical(c) ans = 0,2.5 字符串 2.5.1 创建字符串,创建字符串时需要使用单引号将字符串的内容包括起来 字符串一般以行向量形式存在,并且每一个字符占用两个字节的内存 a=123 a = 123 class(a) ans = cha

8、r size(a) ans = 1 3,创建字符串,若需要在字符串内容中包含单引号,则在键入字符串内容时,连续键入两个单引号即可。 a=Its a cup a = Its a cup,2.5.2 字符串和数值的转换,使用char函数可以将数值转变为字符 使用double函数可以将字符转变成数值 a=Hello a = Hello b=double(a) b = 72 101 108 108 111 char(b) ans = Hello,2.5.3 字符串操作函数,字符串操作函数,组合字符串(strcat和strvcat) a=Hello; b=MOTO!; c=strcat(a,b) c =

9、 HelloMOTO! strvcat函数允许将不同长度的字符串组合成为字符矩阵,并且将短字符串扩充为与长字符串相同的长度, d=strvcat(a,b,c) d = Hello MOTO! HelloMOTO! size(d) ans = 3 10,字符串操作函数,查寻索引( findstr和strfind ) findstr函数在较长的字符串中查寻较短的字符串出现的索引 strfind函数在第一个字符串中查寻第二个字符串出现的索引 S1=A friend in need is a friend indeed; S2=friend; a=findstr(S1,S2) a = 3 23 b=f

10、indstr(S2,S1) b = 3 23, c=strfind(S2,S1) c = d=strfind(S1,S2) d = 3 23,2.5.4 字符串转换函数,在MATLAB中使用不同的函数可以允许不同类型的数据和字符串类型的数据之间进行转换 在MATLAB中直接提供了相应的函数对同样类型的数据进行数制的转换,字符串转换函数,数字和字符之间的转换函数,字符串转换函数,不同数值之间的转换函数,字符串转换函数,例: 函数num2str 使用函数num2str将数字转换成为字符串时,可以指定字符串所表示的有效数字位数 a=10; class(a) ans = double b=num2st

11、r(a) b = 10 class(b) ans = char,A=num2str(rand(2,2),4) A = 0.9575 0.1576 0.9649 0.9706,有效位数,字符串转换函数,例:函数str2num 在使用时需要注意: 被转换的字符串仅能包含数字、小数点、字符“e”(“E”)或者“d”(“D”)、数字的正号或者负号、复数的虚部字符“i”或者“j” 使用时要注意空格,字符串转换函数, A=str2num(1+2i) A = 1.0000 + 2.0000i B=str2num(1 + 2i) B = 1.0000 + 2.0000i C=str2num(1 +2i) C

12、= 1.0000 0 + 2.0000i,可以使用str2double函数避免这个问题,但str2double函数只能转换标量,不能转换矩阵或者数组。,2.5.5 格式化输入输出,MATLAB可以进行格式化的输入、输出 用于C语言的格式化字符串都可以用于MATLAB的格式化输入输出函数,格式化输入输出,格式化字符,格式化输入输出,格式化输入输出函数 sscanf(读取格式化字符串) A = sscanf(s,format) A = sscanf(s,format,size) sprintf(格式化输出数据) B = sprintf(format,A,),格式化输入输出,例:sscanf函数示例

13、 (A=sscanf(s,format,size), S=0 -2 +4 8 16 -32 64 -128 S = 0 -2 +4 8 16 -32 64 -128 sscanf(S,%d) ans = 0 -2 4 8 16 -32 64 -128,sscanf(S,%d,2,3) ans = 0 4 16 -2 8 -32,格式化输入输出,例:sprintf函数示例 (S=sprintf(format,A,) b=sprintf(%10.5f,pi) b = 3.14159,格式化输入输出,input函数(满足用户的输入进行交互的需要) A=input(prompt) A=input(pr

14、ompt,s) 第一个参数prompt为提示用的字符串 第二个参数s 若有s,则输入的数据为字符串 没有s,则输入的数据为双精度数据,格式化输入输出,例:, A=input(任意输入数字:) 任意输入数字:22 A = 22 B=input(任意输入数字:,s) 任意输入数字:22 B = 22 whos Name Size Bytes Class Attributes A 1x1 8 double B 1x2 4 char,2.6 结构体,结构是包含一组记录的数据类型,记录是存储在相应的字段中。 结构的字段可以是任意一种MATLAB数据类型的变量或者对象。 结构类型的变量可以是一维的、二维的

15、或者多维的数组。 在访问结构类型数据的元素时,需要使用下标配合字段的形式。,2.6.1 结构的创建,直接赋值 创建的时候,直接用结构的名称,配合操作符“.”和相应的字段的名称完成创建。 利用struct函数创建,结构的创建,例, Student.name=Yu; Student.age=26; Student.grade=uint16(3); whos Name Size Bytes Class Attributes Student 1x1 386 struct Student Student = name: Yu age: 26 grade: 3,Student,结构的创建,利用struct函数创建结构数组 struct函数的基本语法 Struct_name= struct(field1,val1, field2,val2,) Struct_name= struct(field1,val1,val2, , field2,val1,val2, ,) 注意:字段名要用单引号括起来,若字段值的类型是字 符型的也要用单引号括起来。,结构的创建,例:,Student=

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号