字符数组CharacterArray.ppt_第1页
字符数组CharacterArray.ppt_第2页
字符数组CharacterArray.ppt_第3页
字符数组CharacterArray.ppt_第4页
字符数组CharacterArray.ppt_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,字符数组 Character Array,一、创建字符数组 二、字符数组在绘图中的简单应用 三、字符数组的基本操作 四、字符串元胞数组 五、常用字符串函数,字符串在数据的可视化、应用程序的交互等方面有重要的作用。MATLAB中,字符串(string)是作为字符数组来引入的。字符串按行向量进行存储,每一字符以其在字符集中的内部编码的形式存放。,1、 用单引号对 创建字符串(一维字符数组),s1 = %生成一个空字符串 s2 = M s3 = MathWorks s4 = Accelerating the pace of engineering and science s5 = Youre right! s6 = 矩阵实验室,必须将待建字符串放在单引号对中; 每个字符占一个元素位,两个字节; 当字符串中本身包含单引号时,每个单引号符用连续的两个单引号表示;,注意:必须在英文状态下输入“单引号对”。,一、创建字符数组,2、函数char():使用内部编码创建字符串,s = char(x) 用字符的内部编码 x 创建相应的字符数组s,x为非负整数数组,实际的字符显示和给定的字符编码有关。x的范围为从0到65535,任何在此范围外的数据都没有定义。,字符编码的前128个编码即为ASCII码,s1 = char() %生成空字符串 s2 = char(97) s3 = char(97:122) s4 = char(97:122;65:90),x = 19968:19968+99 X = reshape(x,10,10) X = X s = char(X),附:ASCII码表(7位),高三位 b6b5b4,低四位 b3b2b1b0,字符0的编码:48 字符A的编码:65 字符a的编码:97,获取字符数组的内部编码,x =double(s) 或 x = abs(s) 把字符数组s转换为对应的内部编码数值数组x。可以对内部编码数值数组x进行数值数组的各种运算。但其结果就变成一般数值向量的运算,而不再是字符串的运算,可使用char( ) 函数把运算结果转化为对应字符串。,t = matlab x = double(s1) - 32 s = char(x),miwen = Rfyqfg%2%Ymj%Qfslzflj%Tk%Yjhmsnhfq%Htruzynsl,恺撒密码,凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,它的基本思想是:通过把字母移动一定的位数来实现加密和解密。例如,如果密匙是把明文字母的位数向后移动三位,那么明文字母B就变成了密文的E,依次类推,X将变成A,Y变成B,Z变成C,由此可见,位数就是凯撒密码加密和解密的密钥。这个加密方法是以恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。,练习:上面的密文是将明文的每个字符(包括字母、空格、符号)按acsii码表后移5位得到的,请破译这段密文。,3、用 , 创建字符串(一维字符数组),利用方括号 ,可将多个字符串变量用逗号“ , ”连接,构成一个长的单行字符串。,t1 = ; t2 = MATLAB - ; t3 = The Language Of Technical Computing; t4 = 科学计算语言; s1 = t1, t2, t3 s2 = t2, t3 s3 = t1, t2, t4 s4 = t2, t1, t4,4、用 ; 创建多行(二维)字符数组,t1 = Hello, ; t2 = Nice to meet you!; s=t1; t2,? Error using = vertcat CAT arguments dimensions are not consistent.,利用方括号 ,可将多个字符串变量用分号“ ; ” 连接,构成一个多行字符串(二维字符数组),但是必须保证各行等长(每行的字符数目相等)。空字符串会被忽略掉。,解决办法:必须保证各行等长,可在较短字符串的末尾增加适当数量的 “空格” 。,错误原因: t1 6个字符 t2 17个字符,t1 = Hello, ; t2 = blanks(11); t3 = ; t4 = Nice to meet you!; s1 = t1, t2; t4 s2 = t1, t2; t3; t4,5、函数blanks(n):创建包含 n 个空格的字符串s,s1 = Hello, Nice to meet you!,s2 = Hello, Nice to meet you!,s1 = Hello, Nice to meet you!,s2 = Hello, Nice to meet you!,(1) S = strvcat (t1, t2, t3, .) 把t1,t2,t3,.作为行,空字符串会被忽略掉,生成二维字符数组S,不必考虑每行的字符数是否相等, S的行数等于t1,t2,.的行数之和, S的列数等于最长的字符串的字符数目,较短字符串的末尾用空格补齐。每个字符参数 ti,本身是字符数组。,t1 = Hello, ; t2 = ; t3 = Nice to meet you!; s1 = strvcat(t1, t3) s2 = strvcat(t1, t2, t3),6、 创建字符数组的一些常用函数,(2) t = strcat(s1, s2, s3, .) 将字符数组s1,s2,s3的对应行级联(在水平方向上)。所有输入数组必须具有相同的行数。输入字符数组中尾部的空格被忽略,不出现在输出中。,a = hello b = goodbye c = strcat(a, b),c = hellogoodbye,s1 = strvcat(MathWorks - ,Matlab - ) s2 = Accelerating the pace of engineering and science s3 = The Language Of Technical Computing s4 = strvcat(s2,s3) s5 = strcat(s1,s4),t1 = Hello, ; t2 = ; t3 = Nice to meet you!; s1 = char(t1, t3) s2 = char(t1, t2, t3),s1 = Hello, Nice to meet you!,s2 = Hello, Nice to meet you!,(3) S = char(t1, t2, t3, .) 把t1,t2,t3,.作为行 ,空字符串不会被忽略,生成二维字符数组S,不必考虑每行的字符数是否相等,S的行数等于t1,t2,.的行数之和,S的列数等于最长的字符串的字符数目,较短字符串的末尾用空格补齐。每个字符参数 ti,本身是字符数组。,t1 = Hello, ; t2 = ; t3 = Nice to meet you!; s1 = str2mat(t1, t3) s2 = str2mat(t1, t2, t3),s1 = Hello, Nice to meet you!,s2 = Hello, Nice to meet you!,(4) S = str2mat (t1, t2, t3, .) 把t1,t2,t3,.作为行,空字符串不会被忽略,生成二维字符数组S,不必考虑每行的字符数是否相等, S的行数等于t1,t2,.的行数之和, S的列数等于最长的字符串的字符数目,较短字符串的末尾用空格补齐。每个字符参数 ti,本身是字符数组。,str2mat(t1,t2,.)的功能与char(t1,t2,.)一样,matlab在帮助中说明: This routine will become obsolete(已不用的;已废弃的;过时的 ) in a future version. Use char instead,1、 plot(x,y,LineSpec),用字符数组 LineSpec 指定线型,点标记和画线的颜色,LineSpec的三种属性可以全部指定,也可以只指定其中某一个或两个,排列顺序任意。,二、字符数组在绘图中的简单应用,x = 0:0.2:2*pi y = sin(x) plot(x,y,r-o),x = 0:0.2:2*pi y = sin(x) plot(x,y,ro),指定不指定线型的话,plot( )只绘制点标记,2、plot(x,y,LineSpec,PropertyName,PropertyValue) 对plot生成的图形对象,用指定的properties进行设置。 用字符数组PropertyName指定具体的属性,Color 非标准颜色可用r,g,b指定,r,g,b取0和1之间的数值 LineWidth 线宽 LineStyle 线型 Marker 点标记 MarkerEdgeColor marker的颜色(或 filled markers 边的颜色) MarkerFaceColor the face of filled markers 的颜色 MarkerSize 点标记的大小,PropertyName,filled markers circle, square, diamond, pentagram, hexagram, and the four triangles),x = -pi:pi/10:pi; y = tan(sin(x) - sin(tan(x); plot(x,y,-rs,LineWidth,2,. MarkerEdgeColor,k,. MarkerFaceColor,g,. MarkerSize,10),3、title(text) 添加图形标题,例:,xlabel(text) 添加 X 坐标轴标注 ylabel(text) 添加 Y 坐标轴标注 zlabel(text) 添加 Z 坐标轴标注,例:,4、xlabel( ) / ylabel( ) / zlabel( ),5、legend(string1,string2, .) 在图形中添加图例,x = 0:0.05: 7 y1 = log10(x) y2 = sin(x) plot(x,y1,b,x,y2,r) axis(0,7,-2,2) legend(Log(x),Sin(x),6、text( ) 在图形中指定位置添加文本,text(x,y,string) 在点 (x,y) 处添加文本 text(x,y,string,PropertyName,PropertyValue.),x = 0:0.05: 7 y = log10(x) plot(x,y) s = leftarrow Log(x) text(2, 0.2, s, fontsize,20),7、使用TeX / LaTeX在图形中添加希腊字母、数学符号及公式,在Matlab的text对象的函数中(函数 title、xlabel、ylabel、zlabel、text、legend),说明文字除使用标准的ASCII字符外,还可使用 TeX / LaTeX 格式的控制字符,这样就可以在图形中添加希腊字母、数学符号及公式等内容。Matlab支持两个层次的 TeX ,通过 text的 Interpreter 属性来设置: tex 默认设置,支持 TeX 的一个子集 latex 支持 LaTeX none 不支持,TeX是D.E.Knuth 开发的免费的功能强大的排版系统,是公认的数学公式排得最好的系统。 LaTeX是由L.Lamport编写的一个目前最流行的TeX宏包(宏集、扩展),特别适合数学类论文、书籍的排版,也可以排版普通的文章和书籍。,(1)TeX Character Sequence,bf:设置字体为粗体字。 it:设置字体为斜体字。 sl:设置字体为斜体字,很少使用。 rm:设置字体为正常字体。 fontname字体名:设置字体名。例如:fontname宋体 fontsize字体大小:设置字体大小。例如:fontsize16 _下标 表示下标,若下标只有一个字符,可省略 上标 表示上标,若上标只有一个字符,可省略 ,(2)Tex字符的字体设置,例:使用TeX输入数学表达式,title(itAe-alphaittsinbetaitt alphabeta) xlabel(Time musec.) ylabel(Amplitude),color颜色名颜色名 颜色名有12种,分别为red、green、yellow、magenta、blue、black、white、cyan、gray、barkGreen、orange和lightBlue。 例如:colormagentamagenta colorrgba b c 设置字体颜色为RGB矩阵a b c所表示的颜色。 a、b和c都在0 1 范围内。 例如:colorrgb0 .5 .5,(3)Tex字符的颜色设置,str = 黑colorred红colorgreen绿colorrgb0 0 1蓝黑 text(0.1,0.5,str,fontsize,24,fontname,黑体),例:使用TeX指定字符颜色,( LaTeX命令 ) $ LaTeX命令$ $ LaTeX命令$,在matlab中,使用Latex命令可用下面的方法:,s1 = $y_1=exsin(x)$ s2 = $y_2=frac12sqrt3x$ str = char(s1,s2) text(0.2, 0.5, str, Interpreter, latex, FontSize,16),(4)使用Latex,legend( )函数必须先获得句柄,才可以设置Interpreter属性 h = legend(str1, str2, ) set(h,interprete,latex),上标用 上标,下标用 _下标,希腊字母与TeX一样,用 alpha 等表示 分式 $frac分子分母$ 根式 $sqrtx$ 、$sqrtnx$ 求和 $sum_i=1n x_i$ 积分 $int_01$ 偏微分 $ frac partialy partialx $ 极限 $lim_n rightarrow infty$ %n趋于无穷符号在lim正下方 $lim_n rightarrow infty$ %n趋于无穷符号在lim右下角 上划线 $overlinex$ 下划线 $underlinex$ %下划线在x的正下方 卧式花括号命令 $overbracex+y+z+w$ 仰式花括号命令 $a+underbraceb+c+d $,(5)常用 LaTeX 命令,更多的 LaTeX 命令请参考相关的 LaTeX 资料,1、字符数组中元素及子数组的访问与赋值,与数值数组一样,可用双下标,也可用单下标访问字符数组中的元素和子数组。,s = strvcat(MathWorks,Matlab) ch1 = s(2,5) ch2 = s(11) s1 = s(:,end:-1:1) s(16) = x s(2,9) = y s(:,1) = s(:,end) = z d = s(:),练习:试写出这些matlab语句的输出结果,并在matlab中进行验证。,三、字符数组的基本操作,2、字符数组的关系运算,可以使用关系运算符进行字符数组的比较,但是要求比较的两个数组维数相同,或者其中一个是标量。, A = fate; B = cake; A = B ans = 0 1 0 1 A B ans = 1 0 1 0,3、一些通用函数,size( ) 获得字符数组的大小(行数、列数) length( ) 获得字符数组的长度(行数、列数中的较大值) numel( ) 获得字符数组的字符总数(总数 =行数列数) disp( ) 在command windows中显示字符数组的内容 sort( ) 按照字符的内部编码值对字符串排序,s = strvcat(MathWorks,Matlab); len = length(s) r,c=size(s) n = numel(s) disp(s) s1 = sort(s) s2 = sort(s,2) s2 = sort(s,descend) s2 = sort(s,2,descend),练习:试写出这些matlab语句的输出结果,并在matlab中进行验证。,S. 或 S 对字符数组S进行转置操作 reshape(S,m,n ) 总元素数目不变,改变字符数组的行、列 repmat(S,m,n ) 按指定行、列平铺字符数组 rot90(S,k) 逆时针旋转字符数组 fliplr(S) 左右翻转字符数组 flipud (S ) 上下翻转字符数组,s = char(65:89) s1 = reshape(s, 5, 5) s2 = s1. s3 = rot90(s2) s4 = fliplr(s3) s5 = flipud(s4) s6 = repmat(s5,2,2),练习:试写出这些matlab语句的输出结果,并在matlab中进行验证。,diag(S,k ) 提取二维字符数组S的第k条对角线元素 diag(t,k ) 构成二维字符数组,其第k条对角线的元素由一维字符数组 t 中的元素构成 ,其余位置元素为字符char(0) tril(S) 、triu(S) 提取字符数组的下(上)三角元素,其余位置元素以字符char(0)替换,x = reshape(65:89, 5, 5) s = char(x) s1 = tril(s) s2 = triu(s) s3 = diag(s,1) s4 = diag(s3),练习:试写出这些matlab语句的输出结果,并在matlab中进行验证。,四、字符串元胞数组 Cell Arrays of Strings,字符串元胞数组叫字符数组而言,其优点是不要求每个字符串的长度相同,给用户的数据输入和整合提供了方便。,1、使用 创建字符串元胞数组, cs1=China,City,ShangHai cs1 = China City ShangHai, cs2=China;City;ShangHai cs2 = China City ShangHai,2、cellstr( ):将普通字符数组转为字符串元胞数组, data = Allison Jones;Development ; Phoenix ; celldata = cellstr(data) celldata = Allison Jones Development Phoenix,cellstr()会删除字符串尾部的空格,char( ):可将字符串元胞数组转为普通字符数组, str = char(celldata) str = Allison Jones Development Phoenix,char()会在字符串尾部添加空格,使得每个字符串长度相同,3、iscellstr( ):判断一个数组是否为字符串元胞数组,tf = iscellstr(A), A = ab,cd; B = ab,cd; iscellstr(A) ans = 0 iscellstr(B) ans = 1,五、常用字符串函数,1、字符串检测函数 2、简单的字符串处理函数 3、字符串比较函数 4、字符串替换和查找函数 5、字符串执行函数eval( ) 6、字符串和数值之间的转换函数 7、不同数制之间的转换函数 8、格式化输入输出,1、字符串检测函数,t1 = 1234abcdef t2 = Mat 矩阵 t3 = Matlab s = char(t1, t2, t3) L1 = ischar(s) L2 = isletter(s) L3 = isspace(s),deblank(s) 删除字符串尾部的空格 strtrim(s) 删除字符串的开头和尾部的空格,制表,回车符 lower(s) 将字符串中的字母转换成小写 upper(s) 将字符串中的字母转换成大写,b = blanks(10) t = Matlab 2008a s = b, t ,b, t, b L = length(s) s1 = deblank(s) L1 = length(s1) s2 = strtrim(s1) L2 = length(s2) s3 = lower(s2) s4 = upper(s3),练习:试写出这些matlab语句的输出结果,并在matlab中进行验证。,2、简单的字符串处理函数,strjust() 调整字符串排列位置 T = strjust(S) 左对齐 T = strjust(S, right) 右对齐 T = strjust(S, left) 左对齐 T = strjust(S, center) 居中,S = blanks(10), a b c d e, blanks(30) T1 = strjust(S) T2 = strjust(S, right) T3 = strjust(S, left) T4 = strjust(S, center),若字符串前部或尾部没有空格,则左对齐、右对齐、居中的效果完全相同。,TF = strcmp(str1, str2 ) 比较字符串str1和str2是否完全相等,是,返回逻辑1(真),否,返回逻辑0(假) TF = strcmpi(str1, str2 ) 比较字符串str1和str2是否完全相等,忽略字母大小写 TF = strncmp(str1, str2, n ) 比较字符串str1和str2前n列字符是否相等, TF = strncmpi(str1, str2 , n ) 比较字符串str1和str2前n个字符是否相等,忽略字母大小写,3、字符串比较函数, strcmp(Yes ,No) ans = 0,(1) 比较两个字符串,(2) 比较一个字符串和一个字符串元胞数组, a = upon; b = Once upon; a time; strcmp(a, b) ans = 0 1 0 0,(3) 比较两个字符串元胞数组, c = Time flies when; youre having fun.; d = Time drags when; youre anxiously waiting.; strcmp(c, d) ans = 1 0 1 1 0 0,str = strrep(str1, str2, str3) 进行字符串替换,区分大小写。把str1中所有的子字符串str2用str3来替换,4、字符串替换和查找函数,s1 = This is a good example.; str = strrep(s1, good, great),str = This is a great example.,strrep( ) 字符串替换 strfind( ) 查找字符串 findstr( ) 查找字符串 strmatch( ) 寻找符合条件的行 strtok( ) 在字符串里找出指定标记之前的子字符串,这些函数均可用于字符串元胞数组,具体用法请参考matlab帮助文件。,k = strfind(str, pattern) 在长字符串 str 中查找是否包含有短字符串 pattern。 若包含,返回数组k,其元素为pattern出现在str中的位置 若不包含,则返回空数组。,s1 = Find the starting indices of the pattern string; s2 = in; k1 = strfind(s1, s2) k2 = strfind(s2, s1) k3 = findstr(s1, s2) k4 = findstr(s2, s1),k1 = 2 15 19 45,k = findstr(str1,str2) 查找str1和str2中,较短字符串在较长字符串中出现的位置,没有出现返回空数组。结果与str1、str2的顺序无关。,k2 = ? k3 = ? k4 = ?,x = strmatch(str, STRS) 检查字符数组STRS的每一行,若该行是以字符串str开始的,就把该行的行号输出至列数组x中。 x = strmatch(str, STRS, exact)检查字符数组STRS的每一行,若该行与str完全相同,就把该行的行号输出至列数组x中。,t1 = max t2 = minimax t3 = maximum t4 = max imum t5 = max就是最大的意思 S = char(t1,t2,t3,t4,t5) x1 = strmatch(t1,S) x2 = strmatch(t1,S,exact),token = strtok(str, delimiter) token, remain = strtok(str, .) str:字符串 delimiter:指定的分隔符,未指定delimiter的话,默认为空格char(32), 水平制表符char(9) 和回车char(13)。,s = aaabcd,char(32),matlab,char(32),矩阵实验室 t1, r1 = strtok(s) t2, r2 = strtok(s,a) t3, r3 = strtok(s,b) t4, r4 = strtok(s,w),练习:试写出这些matlab语句的输出结果,并在matlab中进行验证。,从str的第一个元素开始,第一个非分隔字符与其之后的第一个分隔符之间的字符串返回至token,之后的部分返回至remain;若第一个非分隔字符之后没有分隔符,则从第一个非分隔字符直到str的最后一个字符都被返回至token,remain则为空串。,使用eval( )命令“执行”某一字符串,就如同用户在MATLAB的Command窗口中输入此字符串并执行一样。,5、字符串执行函数eval( ),eval(expression) 在matlab中执行expression,clc clear all s1 = a = 2; s2 = 3*a; eval(s1) b = eval(s2) s3 = c = ,s2; eval(s3) whos,Name Size Bytes Class a 1x1 8 double b 1x1 8 double c 1x1 8 double s1 1x5 10 char s2 1x3 6 char s3 1x7 14 char,a1, a2, a3, . = eval(myfun(b1, b2, b3, .) 执行函数myfun,输入参数为b1,b2,.,输出参数为a1,a2,.,eval(a1, a2, a3, . = myfun(b1, b2, b3, .) 也可以执行函数myfun,输入为b1,b2,.,输出为a1,a2,.,x = pi s = y = sin(x) eval(s),x = pi s = sin(x) y = eval(s),这种方式的语法检查不是很严格,可能会产生未曾捕获过的错误或不可预期的行为。,不建议使用这种方式,6、字符串和数值之间的转换函数,str = int2str(N) 将整数转换为整数格式的字符串。输入参数N可以是单一的整数、整数向量或整数矩阵。非整型值在转换前都会被四舍五入取整。,x = 2, 3, 5.7, 1/3, 2/3 s = int2str(x),s = 2 3 6 0 1,clc clear all for n = 1:5 xn=n; end,clc clear all for n = 1:5 s=x,int2str(n),=n; eval(s); end,这些语句执行完后,matlab的工作区中共有几个变量?变量名是什么?变量的值是什么?若换成右边的语句情况如何?,clc clear all x = eye(3); for r = 1:3 for c = 1:3 s = x( , int2str(r) , , , int2str(c) , ) = , int2str(x(r,c); disp(s); end end,这些matlab语句在屏幕上输出的结果是什么?在matlab中验证你的想法是否正确。,str = num2str (A) 对数组A中元素取四位精度,并转换为相对应的字符串str ,末尾多余的0将省略,str = num2str(A, precision) 对数组A中元素按照指定的精度precision取值,并转换为相对应的字符串str, 末尾多余的0将省略 。参数precision指定输出字符str的位数。,str = num2str(A, format) 按照指定的格式format来转化,具体的format可参考fprintf函数的帮助中的相关说明。,x = 2, 3, 5.7, 1/3, 2/3 s1 = num2str(x) s2 = num2str(x,4) s3 = num2str(x,%11.4f),s1 = 2 3 5.7 0.33333 0.66667 s2 = 2 3 5.7 0.3333 0.6667 s3 = 2.0000 3.0000 5.7000 0.3333 0.6667,str = mat2str(A) 将矩阵A转化为字符,包含括号 ,这样可以使用eval(str) 命令产生原始矩阵(使用15位精度)。,str = mat2str(A,n) 使用 n 位精度将矩阵A转化为字符,t = magic(3) s = mat2str(t) A = eval(s),format long t = randn(3) s1 = mat2str(t) s2 = mat2str(t, 4) t1 = eval(s1) t2 = eval(s2),s = 8 1 6;3 5 7;4 9 2 A = 8 1 6 3 5 7 4 9 2,X = str2double(str ) 把字符串str转换为双精度数值 若str2double()无法返回有效的双精度数值,则返回NaN。 输入参数也可以是字符串元胞数组。,a = str2double(123.45e7) b = str2double(123 + 45i) c = str2double(3.14159) d = str2double(2.7i - 3.14) e = str2double(1,200.34) f = str2double(3.4a) g =str2double(2.71 3.1415),s1 = 12 d1 = double(s1) d2 = str2double(s1) s2 = 1, 2; 3, 4 d3 = str2double(s2),d1 = ? d2 = ? d3 = ?,字符串str内可以包含下列字符: 字符0到9,逗号(千位分割符号),小数点, 正负号,指数符号e(10的幂),虚数单位i,X = str2double(C) C为cell数组,用大括号 创建,其元素为字符串 X为与C同维的数值数组,其元素为C数组中的每个字符串转换后的双精度数值,若str2double()无法返回有效的双精度数值,则返回NaN。,C1 = 12, 3.45; -5.6e-1, 7+8i C2 = b12, 3 4; 5.6, 7 X1 = str2double(C1) X2 = str2double(C2),X1 = 12.0000 3.4500 -0.5600 7.0000 + 8.0000i,X2 = NaN NaN 5.6000 7.0000,X = str2num(str ) 把字符串str转换为双精度数值(组),若str2num()无法返回有效的数值,则返回空数组。输入参数不可以是字符串元胞数组,但是可以使二维字符数组,s1 = 1 2 ; 3 4 s2 = 1 2m ; 3 4i d1 = str2num(s1) d2 = str2num(s2),d1 = ? d2 = ?,字符串str内可以包含如下字符: * Digits(数字) * A decimal point(小数点) * A leading + or sign(正号、负号) * A letter e or d preceding a power of 10 scale factor(字母e或d,表示10的幂) * A letter i or j indicating a complex or imaginary number(字母i或j,表示虚数单位),例:作出函数y=e-2tsin(3t)的图形,并标注最大值点,%清除内存变量 %时间 t 从 0 到 10 每隔 0.01 均匀采样 %对应每一个 t 求 y 值 %求最大值 y_max 及其下标 i_max %生成最大值点的横坐标字符串 %生成最大值点的纵坐标字符串 %三行字符来标识最大值点 %图名称字符串 %新建一个图形窗 %画一条黑色的水平线 %保持图形不被清除 %蓝色实线画曲线 y(t) %大小为 20 的红色圆点标记最大值点 %在最大值点附近显示注释字符 %显示图名 %显示横坐标名 %显示纵坐标名 %取消图形保持,clear t = 0 : 0.01 : 10; y = exp( -2*t ) .* sin( 3*t ); y_max, i_max = max( y ); t_text = t = , num2str( t(i_max) ) ; y_text = y = , num2str( y_max ) ; max_text = char( Maxium, t_text, y_text ); Title = y = exp( -2*t ) .* sin( 3*t ) ; Figure plot( t,zeros( size(t) ), k ) hold on plot( t, y, b ) plot( t(i_max), y_max, r., MarkerSize, 20 ) text( t(i_max)+0.3, y_max+0.05, max_text ) title( Title ) xlabel( t ) ylabel( y ) hold off,7、不同数制之间的转换函数,数制,进位计数制,简称数制,是人们利用符号来计数的方法。二进制、十进制、八进制和十六进制是学习计算机知识应该掌握的数制。 R进制的数,都有以下三个要点: (1) 基数为R,即使用R个数码。 (2) 进位规则为逢R进一 (3) 第i个数位上的数码所具有的位权为Ri。 数值可用下面的通式表示: N = an-1Rn-1 + an-2Rn-2 + + a1R1 + a0R0 + + amR-m,b1 = 01010101; d1 = 123; d2 = bin2dec(b1) b2 = dec2bin(d1),d2 = 85 b2 = 1111011,bin2dec( ) 二进制字符串转换为十进制整数 dec2bin( ) 十进制非负整数转换为二进制字符串,h1 = a1; d1 = 1000; d2 = hex2dec(h1) h2 = dec2hex(d1),d2 = 161 h2 = 3E8,hex2dec( ) 十六进制字符串转换为十进制整数 dec2hex( ) 十进制非负整数转换为十六进制字符串,d = base2dec(strn, base) 把base进制字符串strn转换为十进制整数base 为2和36之间的整数,str = dec2base(d, base) str =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论