Matlab讲义-第四章Matlab语言数据结构1-10.pdf

上传人:小魏子好文库 文档编号:9523218 上传时间:2021-03-02 格式:PDF 页数:26 大小:527.03KB
返回 下载 相关 举报
Matlab讲义-第四章Matlab语言数据结构1-10.pdf_第1页
第1页 / 共26页
Matlab讲义-第四章Matlab语言数据结构1-10.pdf_第2页
第2页 / 共26页
Matlab讲义-第四章Matlab语言数据结构1-10.pdf_第3页
第3页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Matlab讲义-第四章Matlab语言数据结构1-10.pdf》由会员分享,可在线阅读,更多相关《Matlab讲义-第四章Matlab语言数据结构1-10.pdf(26页珍藏版)》请在三一文库上搜索。

1、第四章第四章 Matlab语言基础语言基础 Matlab语言程序简洁、可语言程序简洁、可 读性很强而且调试十分容易。读性很强而且调试十分容易。 是是MALAB的重要组成部分。的重要组成部分。 MATLABMATLAB的数据类型的数据类型 各种数据类型的层次关系 4.1 Matlab语言的数据结构 每一种数据都以矩阵 或数组的形式存在 4.1 Matlab语言的数据结构 Matlab共有六种基本数据类型,每一种数据都以矩阵 的形式存在。包括: 数值型:双精度(double),单精度(single),整数型(integer) 字符型:char 单元型:cell 结构型:struct 逻辑类:log

2、ical 函数句柄型:function handle 一般只在大型程序中使用 在MATLAB中,所有的 数据类型都用双精度类 型double来存储和运算 uint8类型:数值范围从0255。在图像处理工具箱中,图 像中每个像素的灰度值均为uint类型。 一般用于存储图象数据 整数型 在MATLAB中,所有的数据类型都用双精度类型 double来存储和运算; 可对unit等类型数组进行基本操作,但不能对它 们执行任何数学运算,在执行数学运算之前必须 用double函数把这类数组转换成双精度型。 如对图像进行运算时,要将读入MATLAB的图像 数据转换为double类型,运算结束后,要显示图像 或

3、保存图像,则必须将double类型转换成uint类型。 y2=mat2gray(detxdata); imshow(y2) subimage(y2); txdata=imread(lena.bmp); double_txdata=double(txdata); 对图像进行运算时,要将其转换为double类型, 运算结束后,要显示图像或保存图像,则必须将 double类型转换成uint类型。 本节侧重介绍MATLAB中的字符 Lenna/Lena是 一张数字化了 的1972年12月 份的美国花 花公子插页 clc,clear tp=imread(lena.bmp); imshow(tp) dou

4、ble_tp=double(tp); out=double_tp+sqrt(2000)*randn(size(double_tp); y2=mat2gray(out); figure(2) % imshow(y2) subimage(y2); 100200300400500 100 200 300 400 500 4.1.1字符 字符串变量是指字符向量或矩阵 下面介绍字符向量和字符矩阵的创建 s=University of Petroleum of China ; s = University of Petroleum of China 1.字符向量的构造: 一、字符向量和字符矩阵的创建 (1

5、)直接赋值的方法:加单引号 S(10)为字母y S(15)为P 可见s为33个元素的字符向量 size(s) %查看变量的维数 ans = 1 33 -两种方法 (2)用构造字符串向量:将多个串变为一个串 说明:当在字符向量内出现单引号时,应改为两个 单引号(注意不是双引号),如: s=China, , University of Petroleum s=China, University of Petroleum ChinaUniversity of Petroleum s=Its yours. %屏幕上显示内容为Its yours. %将多个字符串连接在一起,与数值矩阵结果一致 %可人为加

6、空格 2.字符矩阵的构造 字符矩阵的构造有三种方法: 、char、str2mat 一般使用函数char及str2mat 函数char及str2mat 自动在较短的字符行向量后面补上 空格,以使每行的长度相同。 S1= Beijing ; Tianjin ; Shanghai; S2=char(Beijing, Tianjin, Shanghai) S3=str2mat(Beijing, Tianjin, Shanghai); S1= Beijing ; Tianjin ; Shanghai; S2=char(Beijing, Tianjin, Shanghai) S3=str2mat(Beij

7、ing, Tianjin, Shanghai); S1 = Beijing Tianjin Shanghai S1,S2,S3相同, 均为 3行8列的 字符矩阵 %char及 str2mat自动补空格,且各串中间必须使用,号, 不能用;分号,因函数参数之间要用,逗号 %若用给字符矩阵赋值,需手动加空格 二.字符串函数(strfun库) abs 字符串到ASCII转换 setstr ASCII转换成字符串 dec2bin 十进制数到二进制字符串转换 bin2dec 二进制字符串转换成十进制数 hex2num 十六进制字符串转换成IEEE浮点数 num2str 数值转换成字符串 int2str 将

8、数值取整后转换成字符串 upper 字符串转换成大写 lower 字符串转换成小写 sprintf 用格式控制,数字转换成字符串 sscanf 用格式控制,字符串转换成数字 str2num 字符串转换成数值,如0111:111 str2mat 字符串转换成一个字符矩阵 下面介绍MATLAB中对字符串的几类常用操作方法。 abs(abcd) ans= 97 98 99 100 1.abs函数:字符串到ASCII转换,即查看ASCII值 2. setstr函数:ASCII转换 成字符串 u=97 98 99 100 y=setstr(u) y= abcd %把数字按照ASCII码构造 为字符串向量

9、 3.char(97,98,99,100) 【举例】 4.num2str函数: num2str(97.7 98 99 100) ans = 97.7 98 99 100 数值矩阵转换成字符串矩阵 【例】许多情况下,希望把一个数值嵌入到字符串中。 %函数函数disp不显示变量名不显示变量名t,而直接显示变量所代而直接显示变量所代 表的字符串表的字符串 A circle of radius 2.5 has an area of 19.63. rad=2.5; area=pi*rad2; 字符串转换函数可完成这个任务 t=A circle of radius , num2str(rad),has a

10、n area of , num2str(area),.; disp(t) 5.bin2dec函数:二进制字符串转换成为十进制数 6.str2num函数:字符串转换成为数值 bin2dec (1111) ans = 15 str2num(4.2) ans = 4.2000 7.int2str函数:数值取整后转换成字符串 int2str(97.7 98 99 100) ans = 98 98 99 100 %把数值取整后再转换为字符串 isstr(a) %若变量a为字符串或字符矩阵时,输出为1;否则输 出为0 8.isstr函数判断一个变量是否为字符串 9.blanks函数用于定义空格符 s =b

11、lanks(10) %s为字符串,其内容为10个空格 10.deblank函数用于去除字符串尾部的空格 (1)所有字符串都用单引号括起来。 (2)字符串中的每一个字符(不是单词)都是该字 符串变量(矩阵或向量)中的一个元素。每个字符 都用8个字节来存储。 (3)注意abs,bin2dec等字符串转换函数要求由字符串 转为其他。 总结:MATLAB中的字符串使用基本规则 Xfram=0 1 1 ; NumTrans=bin2dec(num2str(Xfram_re); 【例例1】将已知二进制序列按将已知二进制序列按每每3位转为十进制数位转为十进制数 bin2dec要求对 字符串进行转换 【例2】

12、要求把一个字符串转换成大写,不用upper 函数。 (1)函数find用来找出小写字母的下标值; (2)小写元素减去32;(得出一个数) (3)用setstr把求得的数按ASCII码转换成字符串表示 分析: s=If I have more time, ; setstr函数:ASCII转换成字符串 如何找出小写字母? s=If I have more time, ; %定义字符向量 s= IF I HAVE MORE TIME, i = Columns 1 through 14 2 6 7 8 9 11 12 13 14 16 17 18 19 20 注意:i为索引值 s(i)=setstr(s(i)-(a-A); %ASCII码转字符串 %或s(i)=setstr(s(i)-32) s i=find(s=a s(i)=setstr(s(i)-(a-A) %ASCII码转字符串码转字符串 %s(i)=char(s(i)-(a-A) %或或p(i)=setstr(s(i)-32) i = Columns 1 through 14 2 6 7 8 9 11 12 13 14 16 17 18 19 20 注意:i为索引值 s= IF I HAVE MORE TIME, Thank you for your cooperation

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1