matlab 4 数组.doc

上传人:m**** 文档编号:557579317 上传时间:2023-05-08 格式:DOC 页数:18 大小:106.50KB
返回 下载 相关 举报
matlab 4 数组.doc_第1页
第1页 / 共18页
matlab 4 数组.doc_第2页
第2页 / 共18页
matlab 4 数组.doc_第3页
第3页 / 共18页
matlab 4 数组.doc_第4页
第4页 / 共18页
matlab 4 数组.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《matlab 4 数组.doc》由会员分享,可在线阅读,更多相关《matlab 4 数组.doc(18页珍藏版)》请在金锄头文库上搜索。

1、4.1 字符串数组4.1.1 字符串入门【 * 例 4.1.1 -1 】先请读者实际操作本例,以体会数值量与字符串的区别。clear % 清除所有内存变量a=12345.6789 % 给变量 a 赋数值标量class(a) % 对变量 a 的类别进行判断a_s=size(a) % 数值数组 a 的“大小”a = 1.2346e+004ans =doublea_s =1 1b=S % 给变量 b 赋字符标量(即单个字符)class(b) % 对变量 b 的类别进行判断b_s=size(b) % 符号数组 b 的“大小”b = Sans =charb_s =1 1whos % 观察变量 a,b 在

2、内存中所占字节Name Size Bytes Classa 1x1 8 double arraya_s 1x2 16 double arrayans 1x4 8 char arrayb 1x1 2 char arrayb_s 1x2 16 double arrayGrand total is 10 elements using 50 bytes 4.1.2 串数组的属性和标识【 * 例 4.1.2 -1 】本例演示:串的基本属性、标识和简单操作。(1)创建串数组a=This is an example. a = This is an example. (2)串数组 a 的大小size(a) a

3、ns = 1 19 (3)串数组的元素标识a14=a(1:4) % 提出一个子字符串ra=a(end:-1:1) % 字符串的倒排a14 = Thisra =.elpmaxe na si sihT (4)串数组的 ASCII 码ascii_a=double(a) % 产生 ASCII 码ascii_a = Columns 1 through 1284 104 105 115 32 105 115 32 97 110 32 101Columns 13 through 19120 97 109 112 108 101 46char(ascii_a) % 把 ASCII 码变回字符串ans = Th

4、is is an example. (5)对字符串 ASCII 码数组的操作% 使字符串中字母全部大写w=find(a=a&a=z); % 找出串数组 a 中,小写字母的元素位置。ascii_a(w)=ascii_a(w)-32; % 大小写字母 ASCII 值差 32. 用数值加法改变部分码值。char(ascii_a) % 把新的 ASCII 码翻成字符ans = THIS IS AN EXAMPLE. (6)中文字符串数组A= 这是一个算例。 ; % 创建中文字符串A_s=size(A) % 串数组的大小A56=A(5 6) % 取串的子数组ASCII_A=double(A) % 获取

5、ASCII 码A_s = 1 7A56 =算例ASCII_A =Columns 1 through 654754 51911 53947 47350 52195 49405Column 741379char(ASCII_A) % 把 ASCII 码翻译成字符ans = 这是一个算例。 (7)创建带单引号的字符串b=Example 4.1.2 -1b = Example 4.1.2 -1 (8)由小串构成长串ab=a(1:7), ,b, . % 这里第 2 个输入为空格串ab =This is Example 4.1.2 -1 . 4.1.3 复杂串数组的创建4.1.3.1 多行串数组的直接创建

6、【 * 例 4.1.3 .1-1 】多行串数组的直接输入示例。clear S=This string array has multiple rows.S = This string arrayhas multiple rows.size(S) ans =184.1.3.2 利用串操作函数创建多行串数组【 * 例 4.1.3 .2-1 】演示:用专门函数 char , str2mat , strvcat 创建多行串数组示例。S1=char(This string array,has two rows.) S1 = This string arrayhas two rows.S2=str2mat(

7、 这 , 字符 , 串数组 , 由 4 行组成 )S2 = 这字符串数组由4 行组成S3=strvcat( 这 , 字符 , 串数组 , , 由 4 行组成 )% “空串”会产生一个空格行S3 = 这字符串数组由 4 行组成size(S3) ans =5 5 4.1.3.3 转换函数产生数码字符串【 * 例 4.1.3 .3-1 】最常用的数组 / 字符串转换函数 int2str , num2str , mat2str 示例。(1) int2str 把整数数组转换成串数组(非整数将被四舍五入园整后再转换)A=eye(2,4); % 生成一个 数值数组A_str1=int2str(A) % 转换

8、成 串数组。请读者自己用 size 检验。A_str1 = 1 0 0 00 1 0 0(2) num2str 把非整数数组转换为串数组(常用于图形中,数据点的标识)rand(state,0) B=rand(2,4); % 生成数值矩阵B3=num2str(B,3) % 保持 3 位有效数字,转换为串B3 = 0.95 0.607 0.891 0.4560.231 0.486 0.762 0.0185(3) mat2str 把数值数组转换成输入形态的串数组(常与 eval 指令配用)B_str=mat2str(B,4) % 保持 4 位有效数字,转换为“数组输入形式”串B_str = 0.95

9、01 0.6068 0.8913 0.4565;0.2311 0.486 0.7621 0.0185Expression=exp(-,B_str,); % 相当于指令窗写一个表达式 exp(-B_str)eval(Expression) % 把 exp(-B_str) 送去执行ans = 0.3867 0.5451 0.4101 0.63350.7937 0.6151 0.4667 0.9817【 * 例 4.1.3 .3-2 】综合例题:在 MATLAB 计算生成的图形上标出图名和最大值点坐标。clear % 清除内存中的所有变量a=2; % 设置衰减系数w=3; % 设置振荡频率t=0:0

10、.01:10; % 取自变量采样数组y=exp(-a*t).*sin(w*t); % 计算函数值,产生函数数组y_max,i_max=max(y); % 找最大值元素位置t_text=t=,num2str(t(i_max); % 生成最大值点的横坐标字符串 y_text=y=,num2str(y_max); % 生成最大值点的纵坐标字符串 max_text=char(maximum,t_text,y_text);% 生成标志最大值点的字符串 % 生成标志图名用的字符串tit=y=exp(-,num2str(a),t)*sin(,num2str(w),t); %plot(t,zeros(size

11、(t),k) % 画纵坐标为 0 的基准线hold on % 保持绘制的线不被清除plot(t,y,b) % 用兰色画 y(t) 曲线plot(t(i_max),y_max,r.,MarkerSize,20) % 用大红点标最大值点text(t(i_max)+0.3,y_max+0.05,max_text) % 在图上书写最大值点的数据值 title(tit),xlabel(t),ylabel(y),hold off% 书写图名、横坐标名、纵坐标名 图 4.1.3 .3-1 字符串运用示意图 4.1.3.4 利用元胞数组创建复杂字符串【 * 例 4.1.3 .4-1 】元胞数组在存放和操作字符

12、串上的应用。a=MATLAB 5 ;b=introduces new data types:; % 创建单行字符串 a,bc1= Multidimensional array;c2= User-definable data structure;c3= Cell arrays;c4= Character array;c=char(c1,c2,c3,c4); % 创建多行字符串 cC=a;b;c; % 利用元胞数组存放长短不同的字符串 disp(C1:2) % 显示前两个元胞中的字符内容 disp( ) % 显示一行空白disp(C3) % 显示第 3 个元胞中的字符内容 MATLAB 5 int

13、roduces new data types: Multidimensional array User-definable data structure Cell arrays Character array4.1.4 串转换函数【 * 例 4.1.4 -1 】 fprintf, sprintf, sscanf 的用法示例。rand(state,0);a=rand(2,2); % 产生 随机阵s1=num2str(a) % 把数值数组转换为串数组s_s=sprintf(%.10en,a) %10 数位科学记述串 , 每写一个元素就换行。s1 = 0.95013 0.606840.23114 0

14、.48598s_s =9.5012928515e-0012.3113851357e-0016.0684258354e-0014.8598246871e-001fprintf(% .5g ,a) % 以 5 位数位最短形式显示。不能赋值用0.950130.231140.606840.48598 s_sscan=sscanf(s_s,%f,3,2)% 浮点格式把串转换成成 数值数组。s_sscan = 0.9501 0.48600.2311 00.6068 04.2 元胞数组4.2.1 元胞数组的创建和显示4.2.1.2 元胞数组的创建和显示【 * 例 4.2.1 .2-1 】本例演示: 元胞数组的创建。C_str=char( 这是 , 元胞数组创建算例 1); % 产生字符串R=reshape(1:9,3,3); % 产生 实数阵 RCn=1+2i; % 产生复数标量S_sym=sym(sin(-3*t)*exp(-t); % 产生符号函数量 (1

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

最新文档


当前位置:首页 > 生活休闲 > 社会民生

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