MATLAB实验上机所用word(字符串及其运算篇)

合集下载

MATLAB实验上机所用word(数值计算篇)

MATLAB实验上机所用word(数值计算篇)

第三章数值计算3.1LU分解和恰定方程组的解Matlab矩阵的分解形式主要有:三角分解、正交化、特征值分解。

3.1.1LU三角分解、行列式和逆1、LU分解是利用Gaussian列主元消去法进行的。

为了保证主元消去策略的实施,一般来说,必须对被分解矩阵实施行置换因此有:LU=PA 式中L为主对角元为1的下三角矩阵,U是上三角矩阵,P是由0或1组成的行置换矩阵:[L UP]=lu(A)2、A-1=U-1L-1P Matlab根据以上算法编制了相应的指令:det(a) 求矩阵a的行列式inv(a) 求矩阵a的逆矩阵3.1.2恰定方程组的解在求解方程式,尽量不要使用inv(a)*b指令,而应采用a\b,后者计算速度比前者快,精确度高。

【例3.1.2-1】“求逆”法和“左除”法解恰定方程的性能对比(1)randn('state',0);A=gallery('randsvd',100,2e13,2); %产生条件数为2e13的100阶随机矩阵x=ones(100,1);b=A*x;(2)ticxi=inv(A)*b;ti=toc(3)tic;xd=A\b;td=toc;3.1.3矩阵特征值和矩阵函数矩阵A与向量x相乘,即表示矩阵对向量的变换(transformation),一般说来,向量在变换的作用下将发生旋转(rotation),反射(reflection)和放大缩小。

但对于任何一个矩阵来说,中存在那么一些特殊的向量,再对其变化的作用下,向量的方向不变,而仅长短发生变化。

这种向量就是所谓的特征向量(eigenvector),它满足方程 Ax=λx3.1.3.1特征值和特征向量的求取d=eig(a) 仅仅计算a的特征值[v d]=eig(a) 计算矩阵a的特征向量阵v和特征对角阵d,使av=vd成立。

【例3.1.3.1-1】简单实阵的特征值问题。

A=[1,-3;2,2/3];[V,D]=eig(A)V =0.7746 0.77460.0430 - 0.6310i 0.0430 + 0.6310iD =0.8333 + 2.4438i 00 0.8333 - 2.4438i3.2数据分析3.2.1 基本统计函数指令note: 1、median(x) 当x为向量时,先把x元素有小到大排列,然后在新排成数组中;n为奇取(n+1)/2个元素;n为偶数时取n/2与(n/2+1)元素的平均值,作为总位数。

MATLAB实验:运算基础,并且附有答案

MATLAB实验:运算基础,并且附有答案

实验二、MATLAB运算基础一、实验目的掌握MATLAB各种表达式的书写规则及常用函数的使用。

掌握MATLAB中字符串、元胞数组和结构的常用函数的使用。

二、实验内容及步骤1、设有矩阵A和B,A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 1718 19 20;21 22 23 24 25],B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 1311]1)求它们的乘积C >>C=A*B2)将矩阵C的右下角3x2子矩阵赋给D >>I=[3 4 5];J=[2 3];D=C(I,J)也可以用>>D=C([3 4 5],[2 3])D =520 397705 557890 7172、完成下列操作1)求[100,999]之间能被61整除的数及其个数(提示:先利用冒号表达式,再利用find和length函数。

)>> a=100:999;find(rem(a,61)==0)ans =23 84 145 206 267 328 389 450 511572 633 694 755 816 877>> b=a(ans)b =122 183 244 305 366 427 488 549 610 671 732 793 854 915 976>> length(b)ans =152)建立一个字符串向量,删除其中的大写字母(提示:利用find函数和空矩阵。

)a=’I am maying’;a( find(a>’A’&a<’Z’))=[]3、已知A=[23 10 -78 0;41 -45 65 5;32 5 0 32;6 -54 92 14],取出其前3行构成矩阵B,其前两列构成矩阵C,其左下角3x2子矩阵构成矩阵D,B与C的乘积构成矩阵E,分别求E<D、E&D、E|D、~E|~D。

实验一MATLAB基本操作及运算

实验一MATLAB基本操作及运算

实验一MATLAB基本操作及运算MATLAB是一种强大的数值计算和数据可视化工具,广泛应用于科学研究、工程设计、数据分析等领域。

本文将介绍MATLAB的基本操作和运算。

首先,我们需要了解MATLAB中的基本数据类型,包括数值型、字符型和逻辑型。

数值型可以是整数、实数、复数等;字符型用单引号或双引号包围字符;逻辑型用true和false表示。

MATLAB提供了各种数学运算函数,包括四则运算、三角函数、指数函数等。

例如,加法可以使用加号(+),减法可以使用减号(-),乘法可以使用乘号(*),除法可以使用除号(/)。

三角函数可以使用sin、cos、tan等函数,指数函数可以使用exp函数。

此外,还可以使用log 函数进行对数运算。

MATLAB还可以进行矩阵运算。

矩阵可以使用方括号([])表示,每一行用分号(;)分隔。

可以使用矩阵乘法运算符(*)进行矩阵相乘,使用点乘运算符(.)进行矩阵对应元素的运算。

矩阵还可以进行转置、逆运算等。

除了基本运算,MATLAB还提供了各种其他功能。

例如,可以使用plot函数进行数据可视化,使用subplot函数绘制多个图形。

可以使用for循环和while循环进行循环操作,使用if语句进行条件判断。

MATLAB还可以进行文件读写操作。

可以使用load函数从文件中加载数据,使用save函数将数据保存到文件中。

可以使用fopen函数打开文件,使用fclose函数关闭文件。

可以使用fprintf函数写入文本文件,使用fscanf函数读取文本文件。

还可以使用imread函数读取图像文件,使用imwrite函数保存图像文件。

MATLAB还具备向量化的能力。

向量化是指使用矩阵代替循环进行计算,能够提高代码的执行效率。

例如,可以使用点乘运算符(.)对矩阵的每个元素进行计算,而不是使用循环逐个计算。

使用向量化的方法,可以更加简洁地编写代码。

在MATLAB中还有很多强大的功能等待探索,例如符号计算、模拟仿真、深度学习等。

[指南]matlab字符串处理文档

[指南]matlab字符串处理文档

matlab字符串处理%字符串处理a=' a';b='b b';c='cccc';m=''%获取字符串长度length(a)%连接两个字符串,每个字符串最右边的空格被裁切d=strcat(a,c)length(d)%连接多行字符串,每行长度可不等,自动把非最长字符串最右边补空格%使与最长字符串相等,会忽略空字符串e=strvcat(a,b,m)size(e)%char连接,空字符串会被空格填满f=char(a,b,m)size(f)%strcmp 比较两个字符串是否完全相等,是,返回真,否则,返回假%strncmp 比较两个字符串前n个字符是否相等,是,返回真,否则,返回假%strcmpi %strncmpi 比较两比较两个字符串是否完全相等,忽略字母大小写个字符串前n个字符是否相等,忽略字母大小写%isletter 检测字符串中每个字符时否属于英文字母%isspace 检测字符串中每个字符是否属于格式字符(空格,回车,制表,换行符等)%isstrprop 检测字符每一个字符是否属于指定的范围a='d sdsdsd 15#';b=isletter(a)c=isspace(a)%字符串替换和查找%strrep进行字符串替换,区分大小写% strrep(str1,str2,str3)% 它把str1中所有的str2字串用str3来替换%strfind(str,patten) 查找str中是否有pattern,返回出现位置,没有出现返回空数组%findstr(str1,str2) 查找str1和str2中,较短字符串在较长字符串中出现的位置,没有出现返回空数组%strmatch(patten,str) 检查patten是否和str最左侧部分一致%strtok(str,char) 返回str中由char指定的字符串前的部分和之后的部分,mm='youqwelcome';[mm1,mm2]=strtok(mm,'q')% blanks(n) 创建有n个空格组成的字符串% deblank(str) 裁切字符串的尾部空格% strtrim(str) 裁切字符串的开头和尾部的空格,制表,回车符% lower(str) 将字符串中的字母转换成小写% upper(str) 将字符串中的字母转换成大写%sort(str) 按照字符的ASCII值对字符串排序%num2str 将数字转换为数字字符串%str2num 将数字字符串转换为数字%mat2str 将数组转换成字符串%int2str 把数值数组转换为整数数字组成的字符数组字符串操作总结char(S1,S2,…)利用给定的字符串或单元数组创建字符数组double(S)将字符串转化成ASC码形式cellstr(S)利用的给定的字符数组创建字符串单元数组blanks(n)生成一个由n个空格组成的字符串deblank(S)删除尾部的空格eval(S) evalc(S)使用MATLAB解释器求字符串表达式的值ischar(S)判断是不是字符串数组iscellstr(C)判断是不是字符串单元数组判断是不是字母isspace(s)判断是不是空格strcat(S1,S2,…)将多个字符串水平竖直排列strvcat(S1,S2,…)将多个字符串竖直排列strcmp(S1,S2)判断字符串是否相等strncmp(S1,S2,n)判断前n个字符串是否相等strcmpi(S1,S2)判断字符串是否相等(忽略大小写)strncmpi(S1,S2,n)判断前n个字符串是否相等(忽略大小写)strtrim(S1)删除结尾的空格findstr(S1,S2)查找strfind(S1,S2)在S1种查找S2strjust(S1,type)按照指定的type调整一个字符串数组strmatch(S1,S2)查找要求的字符串的下标strrep(S1,S2,S3)将字符串S1中出现的S2用S3代替strtok(S1,D)查找S1 中的第一个给定的分隔符之前和之后的字符串upper(S)将一个字符串成大写lower(S)将一个字符串转换为小写num2str(k)将数字转换成字符串int2str(k)将整数型转换为字符串mat2str(k)将矩阵转换为字符串,供eval使用str2double(S)将字符串数组转化为数值数组sprintf(S)创建含有指定格式的字符串按照指定的控制格式读取字符串C{3}对内容进行寻址C(3)对单元索引(24)利用正在表达式搜索>> str=’asdfa sfdgdfg tyefgr tyj sdfg qwfge r rety yi .,m zxfgc fdgh fgh’;>> regexp(str,’fg’)ans =12 18 29 34 54 63我们可以使用字符类来匹配指定的字符,如一个字母,一个数字或一个空格符,也可以用来匹配一个字符集。

MATLAB课后上机实验报告

MATLAB课后上机实验报告

《MATLAB程序设计与应用》实验指导书实验一 matlab 集成环境使用与运算基础1,先求下列表达式的值,然后显示matlab 工作空间的使用情况并保存全部变量。

(1)0122sin851z e =+程序:.>> z1=2*sin(85*pi/180)/(1+exp(2)) 结果: z1 =0.2375(2)22121(0.4552i z In x x +⎡⎤=+=⎢⎥-⎣⎦其中 程序:>> x=[2,1+2*i;-0.45,5];>> z2=0.5*log(x+sqrt(1+x*x)) 结果: z2 =0.7114 - 0.0253i 0.8968 + 0.3658i 0.2139 + 0.9343i 1.1541 - 0.0044i(3)0.3,9.2,8.2,...,8.2,9.2,0.3,23.0)3.0sin(23.03.03---=+++-=-a aIn a e e z a a 提示:利用冒号表达式生成a 向量,求各点函数值时用点乘运算。

程序:>> a=-3.0:0.1:30;>> z3=(exp(0.3*a)-exp(-0.3*a))/2.*sin((a+0.3)*pi/180)+log((0.3+a)/2) 结果: z3 =1.0e+003 *Columns 1 through 40.0003 + 0.0031i 0.0003 + 0.0031i 0.0003 + 0.0031i 0.0002 + 0.0031iColumns 5 through 80.0002 + 0.0031i 0.0001 + 0.0031i 0.0001 + 0.0031i 0.0000 + 0.0031i Columns 9 through 12-0.0000 + 0.0031i -0.0001 + 0.0031i -0.0001 + 0.0031i -0.0002 + 0.0031i Columns 13 through 16-0.0003 + 0.0031i -0.0003 + 0.0031i -0.0004 + 0.0031i -0.0005 + 0.0031i Columns 17 through 20-0.0006 + 0.0031i -0.0007 + 0.0031i -0.0008 + 0.0031i -0.0009 + 0.0031i Columns 21 through 24-0.0010 + 0.0031i -0.0012 + 0.0031i -0.0014 + 0.0031i -0.0016 + 0.0031i Columns 25 through 28-0.0019 + 0.0031i -0.0023 + 0.0031i -0.0030 + 0.0031i -0.0370 Columns 29 through 32-0.0030 -0.0023 -0.0019 -0.0016 Columns 33 through 36-0.0014 -0.0012 -0.0010 -0.0009 Columns 37 through 40-0.0008 -0.0007 -0.0006 -0.0005 Columns 41 through 44-0.0004 -0.0003 -0.0003 -0.0002 Columns 45 through 48-0.0001 -0.0001 -0.0000 0.0000 Columns 49 through 520.0001 0.0001 0.0002 0.0002 Columns 53 through 560.0003 0.0003 0.0003 0.0004 Columns 57 through 600.0004 0.0005 0.0005 0.0005 Columns 61 through 640.0006 0.0006 0.0006 0.0007 Columns 65 through 680.0007 0.0007 0.0008 0.0008 Columns 69 through 720.0008 0.0008 0.0009 0.0009 Columns 73 through 760.0009 0.0010 0.0010 0.0010 Columns 77 through 800.0011 0.0011 0.0011 0.0011 Columns 81 through 840.0012 0.0012 0.0012 0.0013 Columns 85 through 880.0013 0.0013 0.0013 0.0014 Columns 89 through 920.0014 0.0014 0.0015 0.0015 Columns 93 through 960.0015 0.0016 0.0016 0.0016 Columns 97 through 1000.0017 0.0017 0.0017 0.0018 Columns 101 through 1040.0018 0.0018 0.0019 0.0019 Columns 105 through 1080.0020 0.0020 0.0020 0.0021 Columns 109 through 1120.0021 0.0022 0.0022 0.0023 Columns 113 through 1160.0023 0.0024 0.0024 0.0025 Columns 117 through 1200.0025 0.0026 0.0026 0.0027 Columns 121 through 1240.0027 0.0028 0.0029 0.0029 Columns 125 through 1280.0030 0.0031 0.0031 0.0032 Columns 129 through 1320.0033 0.0034 0.0034 0.0035 Columns 133 through 1360.0036 0.0037 0.0038 0.0039 Columns 137 through 1400.0040 0.0041 0.0042 0.0043 Columns 141 through 1440.0044 0.0045 0.0046 0.0047 Columns 145 through 1480.0049 0.0050 0.0051 0.0053 Columns 149 through 1520.0054 0.0056 0.0057 0.0059 Columns 153 through 1560.0060 0.0062 0.0064 0.0066 Columns 157 through 1600.0068 0.0069 0.0071 0.0074 Columns 161 through 1640.0076 0.0078 0.0080 0.0083 Columns 165 through 1680.0085 0.0088 0.0090 0.0093 Columns 169 through 1720.0096 0.0099 0.0102 0.0105 Columns 173 through 1760.0108 0.0112 0.0115 0.0119 Columns 177 through 1800.0123 0.0127 0.0131 0.0135 Columns 181 through 1840.0139 0.0144 0.0148 0.0153 Columns 185 through 1880.0158 0.0163 0.0168 0.0174 Columns 189 through 1920.0180 0.0185 0.0191 0.0198 Columns 193 through 1960.0204 0.0211 0.0218 0.0225 Columns 197 through 2000.0233 0.0241 0.0249 0.0257 Columns 201 through 2040.0265 0.0274 0.0284 0.0293 Columns 205 through 2080.0303 0.0313 0.0324 0.0335 Columns 209 through 2120.0346 0.0358 0.0370 0.0382 Columns 213 through 2160.0395 0.0409 0.0423 0.0437 Columns 217 through 2200.0452 0.0467 0.0483 0.0500 Columns 221 through 2240.0517 0.0534 0.0552 0.0571 Columns 225 through 2280.0591 0.0611 0.0632 0.0654 Columns 229 through 2320.0676 0.0699 0.0723 0.0748 Columns 233 through 2360.0773 0.0800 0.0827 0.0856 Columns 237 through 2400.0885 0.0915 0.0947 0.0979 Columns 241 through 2440.1013 0.1047 0.1083 0.1121 Columns 245 through 2480.1159 0.1199 0.1240 0.1282 Columns 249 through 2520.1326 0.1372 0.1419 0.1467 Columns 253 through 2560.1518 0.1570 0.1624 0.1679 Columns 257 through 2600.1737 0.1796 0.1858 0.1921 Columns 261 through 2640.1987 0.2055 0.2125 0.2198 Columns 265 through 2680.2273 0.2351 0.2431 0.2514 Columns 269 through 2720.2600 0.2689 0.2781 0.2876 Columns 273 through 2760.2974 0.3076 0.3180 0.3289 Columns 277 through 2800.3401 0.3517 0.3637 0.3761 Columns 281 through 2840.3889 0.4021 0.4158 0.4299 Columns 285 through 2880.4446 0.4597 0.4753 0.4915 Columns 289 through 2920.5082 0.5254 0.5433 0.5617 Columns 293 through 2960.5807 0.6004 0.6208 0.6418 Columns 297 through 3000.6636 0.6861 0.7093 0.7333 Columns 301 through 3040.7581 0.7838 0.8103 0.8377 Columns 305 through 3080.8660 0.8952 0.9254 0.9567 Columns 309 through 3120.9890 1.0223 1.0568 1.0924 Columns 313 through 3161.1292 1.1673 1.2066 1.2472Columns 317 through 3201.2892 1.3326 1.3774 1.4237Columns 321 through 3241.4715 1.5210 1.5721 1.6249Columns 325 through 3281.6794 1.7357 1.7940 1.8541Columns 329 through 3311.9163 1.98052.0468(4)⎪⎩⎪⎨⎧=<≤<≤<≤+--=5.2:5.0:0,322110,121,2224t t t t t t t t z 其中提示:用逻辑表达式求分段函数值。

MATLAB字符串

MATLAB字符串

字符串设定字符串MATLAB中只需用单引号“’”将需要设定的字符串引注即可str='This is a string! It can be used easily!'whos此外字符串内的单引号是由两个连续的单引号来表示,字符串链接可以直接从数组连接中得到u='Taiwan is part of China,'v='and Jiang core said:''There must be a war between the strait!'''w=[u v]字符串可以有多个行,但每行必须有相同数目的列数,因此要用空格使所有行有相同的长度t=['yuyu ''chenrui']字符串的操作1、字符串元素的读取(1)、利用数组操作工具str(6)str(5)s=str(10:16)w=str(16:-1:10) %s的倒序(2)、使用disp函数disp允许不显示它的变量名而显示一个字符串strsdisp(str) %省去了str=disp(s) %省去了s=2、字符串的基本变换(1)、ASCII码操作:将字符串变为ASCII码a=abs(str)(2)、使用char函数进行逆变换S=char(X):将包含正数(ASCII码的前127个数码)的数组X转换为字符型数组的对应行S=char(T1,T2,T3,…):生成的字符串矩阵包含字符串T1、T2和T3,他们的字符个数可以不相等,分别转换到对应S=char(C):C是字符型单元数组,该命令将C中的每个单元转换为字符型数组的对应行t=['yuyu ';'chenrui']s=abs(t)b=char(s)s=char('yuyu','and chenrui') %显示为两行ss={'Matlab','NJUPT','Yuyu'}sss=char(ss) %显示为三行其具体的字符串函数与C语言类似(3)、字符串的执行(eval函数:将括号内的字符串视为语句并运行)eval('a= magic(4)')for n=3:5eval(['M' num2str(n) '=magic(n)'])end3、字符串的运算(1)、判断字符串是否相等strcmp(s1,s2):相等返回1,不等返回0strncmp(s1,s2,n):判断s1和s2的前n个字符是否相等,相等返回1,不等返回0words1='situate';words2='situp';N1=strcmp(words1,words2)N2=strncmp(words1,words2,3)N3=strncmp(words1,words2,4)N4=strncmp(words1,words2,5)单元数组情况famous1={'GREAT';'SUMMER PALACE';'JIU ZHAI GOU'};famous2={'GREAT';'TAI MOUNTAIN';'ZHANGJIAJIE'};N=strcmp(famous1,famous2)N=strncmp(famous1,famous2,1)N=strncmp(famous1,famous2,3)(2)、通过字符的运算比较字符对字符串当做字符数组进行比较F1='CARESS ';F2='CHARLATAN';F1>=F2 %结果101011000(3)、字符串中字符的分类isspace(S):判断字符S是否为空白字符isletter(S):判断字符S是否为字母字符realstring=' yuyu19900626@';A=isspace(realstring)A=isletter(realstring)(4)、查找与替换K=findstr(S1,S2):根据所给的字符串中的字符来查找字符串,当查找成功后返回字符的具体位置,S1和S2可以互调s='How much wood would a woodchunk chunk?';a1=findstr(s,'a') %返回21a2=findstr(‘a’,s) %返回21a3=findstr(s,'A')a4=findstr(s,'wood')a5=findstr(s,'Wood')a6=findstr(s,' ')K=strfind(text,pattern):根据所给字符串中的字符来查找字符串,只能在text中查找patterns='How much wood would a woodchunk chunk?';b1=strfind(s,'a')b2=strfind('a',s) %结果为空b3=strfind(s,'wood')b4=strfind(s,'Wood')b5=strfind(s,' ')S=strrep(S1,S2,S3):把字符串S1中的S2字符串都换成字符串S3,并返回置换后的新字符串s1='This is a beautiful women!';strrep(s1,'women','girl') %This is a beautiful girl!strrep(s1,'beautiful','ugly') %This is a ugly women!strrep(s1,'','women') %This is a beautiful women!(5)、字符串与数值的转换T=num2str(X):将矩阵X转换为一个字符串T,T的精度为4位小数T=num2str(X,N):N为精度,最多16位T=num2str(X,format):转换为format格式的字符串X=num2str(rand(6))num2str(pi,10)num2str(pi,30)S=int2str(X):将矩阵X中的元素取整后在转换为字符串矩阵X=int2str(rand(6))Y=num2str(rand(6),0) %这两个结果不同X=int2str(S):将一个字符型矩阵S转换为数字矩阵S=['1 2';'3 4']X=str2num(S)字符型矩阵S中的元素必须为ASCII码中的数字字符,每个元素可以包括数字、小数点以及数字前的+和-,也可以是指数形式的字符或复数型字符,如果字符串矩阵S中含有不在上述规定的元素,str2num(S)返回一个空矩阵,[X,OK]=str2num(S)将返回OK=0str2num会产生边际效应,可以用str2double函数来避免边际效应的产生str2num('1+2i') %1+2istr2num('1 + 2i') %1+2istr2num('1 +2i') %1和2istr2double('1+2i') %1+2iS=['s e';'3 4']X=str2num(S)[X OK]=str2num(S) %X为空矩阵,OK=0X=str2double(S):将字符串矩阵转换为数字矩阵,字符规定同str2num,若S中含有不符合规定的元素,该函数返回NaNX=str2double(C):将单元型字符矩阵C中的元素转换为双精度数值矩阵str2double('123.45e7')str2double('123+45i')str2double('3.14159')str2double('2.7i-3.14')str2double({'2.71' '3.1415'})str2double('1,200.34')(6)、数组与字符串的转换STR=mat2str(MAT):将二维矩阵MAT转换为一个字符串STR,MAT为非数量元素,矩阵MAT 将被转换为[]eval(STR):返回一个具有15位精度的初始矩阵MAT=magic(6)STR=num2str(MAT) %结果为矩阵形式STR=mat2str(MAT) %结果为定义矩阵的形式。

(完整word版)Matlab数学实验报告

(完整word版)Matlab数学实验报告

Matlab 数学实验报告一、实验目的通过以下四组实验,熟悉MATLAB的编程技巧,学会运用MATLAB的一些主要功能、命令,通过建立数学模型解决理论或实际问题。

了解诸如分岔、混沌等概念、学会建立Malthu模型和Logistic 模型、懂得最小二乘法、线性规划等基本思想。

二、实验内容2.1实验题目一2.1.1实验问题Feigenbaum曾对超越函数y=λsin(πx)(λ为非负实数)进行了分岔与混沌的研究,试进行迭代格式x k+1=λsin(πx k),做出相应的Feigenbaum图2.1.2程序设计clear;clf;axis([0,4,0,4]);hold onfor r=0:0.3:3.9x=[0.1];for i=2:150x(i)=r*sin(3.14*x(i-1));endpause(0.5)for i=101:150plot(r,x(i),'k.');endtext(r-0.1,max(x(101:150))+0.05,['\it{r}=',num2str(r)]) end加密迭代后clear;clf;axis([0,4,0,4]);hold onfor r=0:0.005:3.9x=[0.1];for i=2:150x(i)=r*sin(3.14*x(i-1));endpause(0.1)for i=101:150plot(r,x(i),'k.');endend运行后得到Feigenbaum图2.2实验题目二2.2.1实验问题某农夫有一个半径10米的圆形牛栏,长满了草。

他要将一头牛拴在牛栏边界的桩栏上,但只让牛吃到一半草,问拴牛鼻子的绳子应为多长?2.2.2问题分析如图所示,E为圆ABD的圆心,AB为拴牛的绳子,圆ABD为草场,区域ABCD为牛能到达的区域。

问题要求区域ABCD等于圆ABC的一半,可以设BC等于x,只要求出∠a和∠b就能求出所求面积。

matlab字符运算

matlab字符运算

matlab字符运算摘要:一、引言1.Matlab 简介2.字符运算在Matlab 中的重要性二、Matlab 中的字符运算1.字符串创建2.字符串连接3.字符串提取与替换4.字符串比较5.字符串转换三、字符运算的应用实例1.文本处理与分析2.数据可视化四、总结1.字符运算在Matlab 中的作用2.进一步学习的建议正文:一、引言Matlab 是一款广泛应用于科学计算、数据分析、可视化等方面的软件。

在实际操作中,字符运算常常被用于处理文本数据、显示信息以及实现特定的功能。

因此,熟练掌握字符运算对于使用Matlab 进行各种任务至关重要。

二、Matlab 中的字符运算1.字符串创建在Matlab 中,可以使用双引号或单引号创建字符串。

例如:```a = "Hello, World!";b = "这是一段中文文本。

";```2.字符串连接字符串连接用于将多个字符串组合成一个字符串。

可以使用加号(+)或concatenate 函数实现字符串连接。

例如:```c = a + b;d = concatenate(a, b);```3.字符串提取与替换Matlab 提供了许多字符串操作函数,如substr、strrep、regexp 等,用于从字符串中提取特定部分或替换特定内容。

例如:```e = substr(a, 1, 5); % 提取字符串a 的前5 个字符f = strrep(a, "World", "MATLAB"); % 将字符串a 中的"World"替换为"MATLAB"```4.字符串比较Matlab 提供了许多字符串比较函数,如isequal、strcmp、regexp 等,用于比较两个字符串是否相等或满足特定条件。

例如:```g = isequal(a, b); % 判断字符串a 是否等于字符串bh = strcmp(a, b); % 判断字符串a 是否大于字符串bi = regexp(a, "[a-z]"); % 判断字符串a 是否包含小写字母```5.字符串转换字符串转换函数用于将字符串转换为其他数据类型。

matlab字符运算

matlab字符运算

matlab字符运算一、引言MATLAB是一种功能强大的科学计算软件,除了能进行数值计算外,还具备对字符进行各种运算的能力。

本文将介绍MATLAB字符运算的相关知识。

二、MATLAB字符类型在MATLAB中,字符被表示为字符串(string)。

字符串是由一连串的字符组成的,可以包含字母、数字、标点符号等。

在MATLAB中,字符串被认为是一种数据类型,并且具备一系列的操作方法。

三、字符的定义与表示在MATLAB中,我们可以通过使用单引号或双引号来定义字符串。

例如,我们可以使用以下方式定义一个字符串变量x:x = 'Hello World';或者x = "Hello World";这两种方式都可以定义一个包含字符串"Hello World"的变量x。

四、MATLAB字符的常用操作1. 字符串连接通过使用加号(+)可以实现字符串的连接操作。

例如,我们可以通过以下方式将两个字符串连接起来:str1 = 'Hello ';str2 = 'World';result = str1 + str2;运行以上代码后,result的值将为'Hello World'。

2. 字符串长度使用内置函数length可以获取字符串的长度。

例如:str = 'Hello World';len = length(str);运行以上代码后,len的值将为11。

3. 字符串切片可以使用方括号([])和冒号(:)来对字符串进行切片操作。

例如,我们可以通过以下方式获取字符串的前三个字符:str = 'Hello World';slice = str(1:3);运行以上代码后,slice的值将为'Hel'。

4. 字符串查找和替换MATLAB提供了一些函数用于在字符串中查找和替换特定字符或子字符串。

(完整word)Matlab实验报告

(完整word)Matlab实验报告

实验一:Matlab操作环境熟悉一、实验目的1.初步了解Matlab操作环境.2.学习使用图形函数计算器命令funtool及其环境。

二、实验内容熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format 命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算:1.单函数运算操作。

求下列函数的符号导数(1)y=sin(x);(2) y=(1+x)^3*(2-x);求下列函数的符号积分(1)y=cos(x);(2)y=1/(1+x^2);(3)y=1/sqrt(1—x^2);(4)y=(x1)/(x+1)/(x+2)求反函数(1)y=(x-1)/(2*x+3); (2) y=exp(x);(3) y=log(x+sqrt(1+x^2));代数式的化简(1)(x+1)*(x-1)*(x-2)/(x-3)/(x—4);(2)sin(x)^2+cos(x)^2;(3)x+sin(x)+2*x—3*cos(x)+4*x*sin(x);2.函数与参数的运算操作。

从y=x^2通过参数的选择去观察下列函数的图形变化(1)y1=(x+1)^2(2)y2=(x+2)^2(3) y3=2*x^2 (4) y4=x^2+2 (5) y5=x^4 (6) y6=x^2/2 3.两个函数之间的操作求和(1)sin(x)+cos(x) (2) 1+x+x^2+x^3+x^4+x^5乘积(1)exp(—x)*sin(x) (2) sin(x)*x商(1)sin(x)/cos(x); (2) x/(1+x^2); (3) 1/(x—1)/(x—2); 求复合函数(1)y=exp(u) u=sin(x) (2) y=sqrt(u) u=1+exp(x^2)(3) y=sin(u) u=asin(x) (4) y=sinh(u) u=-x实验二:MATLAB基本操作与用法一、实验目的1.掌握用MATLAB命令窗口进行简单数学运算。

实验二 Matlab的图形绘制和字符串运算

实验二  Matlab的图形绘制和字符串运算

《Matlab》课内实验报告姓名:袁清晨学号:1009300131学院:理学院班级:数学101课程名称:Matlab语言程序设计实验题目:Matlab的图形绘制和字符串运算指导教师:2012年03月20日一、实验目的1. 掌握Matlab 中绘图函数的使用;2. 掌握Matlab 中图形控制命令的使用; 4. 掌握Matlab 中的字符串运算函数的使用。

二、实验内容和结果1. 用plot 命令绘制函数1)ln()(*)(22+=x x sh x x y 的图像(注意定义域)。

加标题,x 轴y 轴标注,在点))2(,2(y 处用text 命令加标注。

>> x=linspace(-2*pi,2*pi);>> y=x.^2.*((exp(x)-exp(-x))./2)./(log(x.^2)+1); >> plot(x,y);>> title('x^2*sh(x)/(ln(x^2)+1)'); >> xlabel('x-axis'); >> ylabel('y-axis');>> a=2^2*((exp(2)-exp(-2))/2)/(log(2^2)+1); >> text(2,a,'(2,y(2))');2.将绘图窗口分成两行两列四个子窗口,第一个窗口用mesh 绘制22y x z +=,第二个窗口用surf 绘制22y x z +=,第三个窗口用plot3绘制⎪⎩⎪⎨⎧===t z t t y t t x 2)sin()cos(,第四个窗口用ezplot 绘制122=+y x 。

>> x=-2:0.3:2; >> y=x;>> [X,Y]=meshgrid(x,y); >> Z=sqrt(X.^2+Y.^2); >> subplot(2,2,1); >> mesh(X,Y,Z); >> subplot(2,2,2); >> surf(X,Y,Z); >> t=-2:0.2:2; >> x=t.*cos(t);>> y=t.*sin(t); >> z=2.*t;>> subplot(2,2,3) >> plot3(x,y,z,'b') >>subplot(2,2,4);>> ezplot('x.^2+y.^2=1');3.用plot 在]2,2[ππ-内绘制)sin(x x y =的图形;利用hold 命令保持绘图窗口;在相同的范围内绘制)exp(x y =的图形。

MATLAB实验报告(word文档良心出品)

MATLAB实验报告(word文档良心出品)

《MATLAB/Simulink与控制系统仿真》实验报告专业:班级:学号:姓名:指导教师:实验1、MATLAB/Simulink 仿真基础及控制系统模型的建立一、实验目的1、掌握MATLAB/Simulink 仿真的基本知识;2、熟练应用MATLAB 软件建立控制系统模型。

二、实验设备电脑一台;MATLAB 仿真软件一个 三、实验内容1、熟悉MATLAB/Smulink 仿真软件。

2、一个单位负反馈二阶系统,其开环传递函数为210()3G s s s=+。

用Simulink 建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB 的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。

图 1系统结构图图 2示波器输出结果图3、某控制系统的传递函数为()()()1()Y s G s X s G s =+,其中250()23s G s s s+=+。

用Simulink 建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MA TLAB 的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。

图 3系统结构图 图 4 示波器输出结果图图 5 工作空间中仿真结果图形化输出4、一闭环系统结构如图所示,其中系统前向通道的传递函数为320.520()0.11220s G s s s s s+=+++g ,而且前向通道有一个[-0.2,0.5]的限幅环节,图中用N 表示,反馈通道的增益为1.5,系统为负反馈,阶跃输入经1.5倍的增益作用到系统。

用Simulink 建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB 的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。

图 6 系统结构图图 7 示波器输出结果实验2 MATLAB/Simulink 在控制系统建模中的应用一、实验目的1、掌握MATLAB/Simulink 在控制系统建模中的应用; 二、实验设备电脑一台;MA TLAB 仿真软件一个 三、实验内容1、给定RLC 网络如图所示。

matlab运算函数Word版

matlab运算函数Word版

1.矩阵特征值和特征向量:[v,d]=eig(a),其中v为对应的特征向量,d为特征值,a为所求矩阵;用poly函数求N阶方正的特征多项式,p=poly(N);2.矩阵的秩:rank(a),矩阵求转置A’;3.矩阵的行列式:det(a);4.矩阵求逆:inv(a);5.矩阵范数:norm(a,opt);6.矩阵条件数:cond(a);7.矩阵按位运算:a.+,-,*,/,\,^b8.矩阵求幂:a^39.矩阵除法:左除-a\b=c_ac=b,右除-a/b=c_ca=b;10.矩阵的分解:11.矩阵的拼接:表达式C=[A B]或者C=[A,B]是水平方向拼接矩阵A和B;表达式C=[A;B]是垂直方向拼接矩阵A和B。

12.MATLAB中求一元方程即利用求f(x)=0,的零点来求解,一般得到数值解,函数为fzero();13.matlab中求微分:一元函数用函数diff(x,n),多元函数求偏导用函数gradent(x,n);14.matlab可视化函数:15. MATLAB中的max、min、median函数分别用于提取数据的最大值、最小值和中位数,详细的使用方法见表。

16.MATLAB利用sort函数对数组进行排序;17.MATLAB中的sum函数对数组求和,sum(A),对计算结果类型的定义为sum(a,’double’);18用plot函数绘制二维图形:plot(x,’s’);19.在MATLAB中,用户可以通过grid on和grid off函数进行网格的添加和删除操作,也可以直接用grid函数改变当前的网格状态; 20.在已经绘制完成的图形上再次添加或删减图形,对于用户的这种需要,MATLAB提供了hold函数,hold on plot(x,y);21.matlab中函数图像中的标示函数如下:22.MATLAB使用ginput函数可以十分方便地通过鼠标来读取图形中任意一点的坐标,其常用调用格式如下:[x,y]=ginput(n);23.三维曲线绘制函数plot3,此函数的常用调用格式plot(X,Y,Z,'s'),生成网格的函数为mesh(X,Y,Z)为最常用的一般调用格式;24.MATLAB中的surf函数专门用于绘制三维着色曲面图,其调用格式和对数据准备的要求与上一小节的mesh函数相同;surf(x,y,z);25.再三维图形中如果用户需要了解被遮盖的隐藏网格,可以调用透视函数hidden,其格式和功能如下:hidden on:设置隐藏部分不可视,hidden off:设置隐藏部分可视;26.MATLAB中提供了条形图绘制函数bar;MATLAB中的区域绘图函数area用来绘制二维的面积图;MATLAB中提供的饼形绘图函数pie来绘制饼状图,饼状图绘制函数有pie和pie3,分别绘制二维和三维饼状图;MATLAB中用hist函数和rose函数绘制二维柱状图;在MATLAB中,如果调用plot函数对于离散数据绘图,那么系统默认把若干离散的数据点用直线连接,但是用户有时并不希望看到这种连续的图形,这时就使用stem函数代替plot函数绘图;即使用户不调用具体的绘制函数,也可以通过调用figure函数生成空的图形窗口;27.format 用于显示数据的格式:format rat 以分数形式显示;format loose 以疏松形式显示等;help函数用于显示MATLAB里的已有函数;28.函数polyval和polyvalm用来求多项式p(x)在x=a的取值,polyval 函数的输入可以是标量或者矩阵,但polyvalm函数的输入只能是N 阶方阵,调用格式为:pv=polyval(p,a)和pv=polyval(p,A);29.matlab提供roots函数求多项式的根,roots(p);30.matlab中求f(x),g(x)的卷积fg=conv(fg)反卷积f(x)/g(x),商和余数的多项式q、r,[q,r]=deconv(f,g);31.多项式的微分:matlab用函数dp=polyder(p)求p的微分,用dp=polyder(p1,p2);用[dp,dq]=polyder(p1,p2)分别求多项式积和商的微分;32.MATLAB中用函数residue来球f(x)/g(x)的部分展开式:[r,p,k]=residue(f,g);r、p为前式中的数,k为后面多项式的表示,f(x)/g(x)=求和ri/(x-pi)+k(x);33.matlab中插值函数:用Interp1实现一元函数插值:yi=interp1(x,y,xi,method),method即为插值方式-nearest为最邻近插值,linear为线性插值,spline为三次样条插值,三次样条插值最常用,pchip为分段的hermite插值;用interp2实现二元函数插值,ZI=interp(X,Y,Z,XI,YI,method);34.matlab中解微分方程:利用ODE函数来接一阶常微分方程,[t,Y]=solver(oldfun,tspan,y0);35.傅里叶分析:MATLAB用函数FFT来实现函数的傅里叶离散变换,X=fft(x,L);36.多项式拟合:MA TLAB中用polyfit和polyval函数进行拟合,p=polyfit(x,y,n),n为多项式的次数。

matlab字符运算

matlab字符运算

matlab字符运算(实用版)目录1.MATLAB 简介2.MATLAB 中的字符串类型3.MATLAB 字符串运算基本操作4.MATLAB 字符串高级操作5.MATLAB 字符串运算实例正文一、MATLAB 简介MATLAB(Matrix Laboratory)是一款广泛应用于科学计算、数据分析、可视化等领域的编程软件。

它以矩阵计算为基础,提供了丰富的函数库和强大的数据处理能力,使得用户可以更加高效地完成各种计算任务。

在 MATLAB 中,字符串也是一个重要的数据类型,可以进行各种运算操作。

二、MATLAB 中的字符串类型在 MATLAB 中,字符串类型主要有两种:字符数组(character array)和字符串(string)。

1.字符数组:字符数组是一种可以存储多个字符的数组,每个元素都可以是一个字符。

在创建字符数组时,需要在方括号中指定字符个数,并在其中填写字符。

例如,创建一个包含 3 个字符的数组:"abc"。

2.字符串:字符串是一种包含多个字符的序列,以单引号或双引号括起来。

在 MATLAB 中,可以使用双引号将字符串与其他数据类型进行区分。

例如,创建一个包含 5 个字符的字符串:"hello"。

三、MATLAB 字符串运算基本操作MATLAB 提供了许多基本的字符串运算操作,如下所示:1.构造字符串:使用字符数组或字符串直接构造新的字符串。

例如,str = "hello, world!";。

2.字符串长度:使用 length 函数获取字符串的长度。

例如,n = length("hello");。

3.字符串查找:使用 find 函数查找子字符串在字符串中的位置。

例如,p = find("hello", "world");。

4.字符串替换:使用 strrep 函数替换字符串中的子字符串。

MATLAB学习笔记01字符串、向量以及矩阵运算

MATLAB学习笔记01字符串、向量以及矩阵运算

MATLAB学习笔记01字符串、向量以及矩阵运算字符串的⽣成s='sdfasdfaf' %⽤单引号设定即可s(n) %字符串中第n个字符size(s) %查看字符或者数组的维数字符串操作函数stract %链接串strcmp %⽐较串findstr %在其他串中找此串strmacth %查找可能匹配的字符串upper %转换为⼤写lower %转换为⼩写blanks %⽣成空串deblank %移去空串向量的⽣成x=[元素,元素,元素] //可以是“空格”“逗号”“分号” 隔开, x=[1 2 3 4 ]x=初始值:增量值:终⽌值x=linspace(初始值,最后⼀个值,元素个数)向量的引⽤x(n) 向量中第n个元素x(n1,n2) 第n1到n2个元素矩阵的初始化矩阵元素的引⽤,操作等矩阵的运算特征值计算矩阵对⾓化,矩阵变换矩阵分解利⽤矩阵进⾏线性⽅程组求解符号矩阵:元素是表达式。

1 %符号矩阵的⽣成可以由函数sym来⽣成 %矩阵的常⽤计算表达式2 a=sym('[x 1; 2 sin(x)]');3 b=sym('[1/x x;1/(x^2) x+1]');4 c=[1 0;0 1];5 d=b';6 e=transpose(a); %转置的实现使⽤单引号“‘”或者transpose7 f=det(a); %⾏列式的计算det(a)8 g=inv(b); %符号矩阵的逆运算inv9 h=rank(b); %秩的据算rank符号矩阵的函数运算1. 特征值特征向量运算 eig eigensys2. 奇异值运算 svd singvals3. 约当标准型 jordan4.矩阵的⽣成:直接输⼊A=[%元素之间空格隔开;⾏之间分号隔开]建⽴M⽂件,输⼊%⽂件名.m打开建⽴txt⽂件,输⼊load data.txt 或者load(‘指向⽂件txt的地址’)特殊矩阵的⽣成1. zeros(m,n) 零矩阵⽣成2. eye(m,n) 单位矩阵3. ones(m,n) 全1矩阵矩阵元素的引⽤第m⾏元素 A(m,:)第n列元素 A(:,n)第m⾏中第n1到n2个元素 A(m,n1:n2)矩阵前n-1列所有元素组成的矩阵 B=A(,1:col-1) %B=A(1:row-1,)也好理解了矩阵元素的修改D=[A;B C] A为原矩阵,B,C为包含扩充的元素A(m,:)=[] 删除第m⾏元素A(m,n)=a 赋值矩阵变维reshapr(X,m,n)矩阵的转置B=transpose(A)单元形变量每个元素可以包含其他类型数组E=cell(1,4); E{1,1}=[1:4]; E{1,2}=3+2i; E(1,3)=2; E{1,4}=a;单元形变量通常由{}创建,⽽矩阵是由[]创建。

MATLAB字符串数组的创建与运算

MATLAB字符串数组的创建与运算

MATLAB字符串数组的创建与运算字符串数组主要用于可视化编程内容,如界面设计和图形绘制。

1.字符串变量的创建字符变量的创建方法是:在指令窗口中先把待建的字符放在“单引号对”中,再按回车键。

注意,该“单引号对”必须在英文状态下输入。

这“单引号对”是MATLAB用来识别字符串变量所必须的。

如:>>a='This is an example.'a =This is an example.>>msg = 'You''re right!' %创建带单引号的字符串msg =You're right!2.字符串数组的标识字符串变量的每个字符(英文字母、空格和标点都是平等的)占据一个元素位,在数组中元素所处的位置用自然数标识。

如:>>b=a(1:4) % 提出一个子字符串b =Thisra=a(end:-1:1) % 字符串的倒排ra =.elpmaxe na si sihT又如:>>A='这是一个算例。

';>>B=size(A) % 符号数组 A 的“大小”B =1 7>>C=A([5 6]) % 提出一个子字符串C =算例3.字符串的ASCII码字符串的存储是用ASCII码实现的。

指令abs和double都可以用来获取串数组所对应的ASCII码数值数组。

指令char可把ASCII码数组变为串数组。

如>>d=double(a)d =84 104 105 115 32 105 115 32 97 110 32 101 120 97 109 112 108 101 46>>char(d)ans =This is an example.对字符串ASCII码数组的操作:使字符串中字母全部大写>>w=find(a>='a'&a<='z'); %找出串数组a中,小写字母的元素位置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第四章字符串、元胞和构架数组与符号计算MATLAB 6.x版的内建数据类型(Built-in data type)就有5种以上,此外还有许多其他专门设计的类(Class),如符号类、内联函数类、控制工具包中的线性时不变模型类、神经网络类等。

就程序设计而言,MATLAB 6.x版采用了面向对象编程技术。

数据和编程的改变使用户能更简捷而自然地解决复杂的计算问题(如符号计算问题、多变量控制系统问题、神经网络问题)。

本章内容根据MATLAB6.5编写,但绝大部分内容适用于其他MATLAB6.x版本。

4.1字符串数组4.1.1字符串入门字符变量的创建方式是:在指令窗中,先把待建的字符方在“单引号对中,再按’Enter‘。

注意单引号对必须在英文状态输入。

【例3.1.1-1】先请读者实际操作本例,以体会数值量与字符串的区别。

cleara=12345.6789class(a)a_s=size(a)b='S'class(b)b_s=size(b)4.1.2串数组的属性和标识【例3.1.2-1】本例演示:串的基本属性、标识和简单操作。

(1)创建一个由19个字符组成的串,这19个字符必须被放在但引号对内。

a='This is an example.'(2)串数组的大小在以上赋值后,变量就是一个串数组。

该串的每个字符(英文字母、空格和标点都是平等的)占据一个元素位。

串数组的大小可以通过下面指令获得。

size(a)(3)串数组的元素标识在一维串数组中,matlab按自左至右的次序用自然数数码标识字符的位置。

a14=a(1:4) %提出一个字数串ra=a(end:-1:1) %字符串的倒排(4)串数组的ASCII码字符串的存储是用ASCII码实现的,指令double、abs都可以用来获取串数组对应的ASCII码数值数组,指令char可以把ASCII数组变为串数组。

ca=double(a)char(ca)note: 1、在char把数字转换为字符时,负数将导致“警告”;非整数部分将被截尾。

2、中文字符能被char和double正确转换。

(5)对字符ASCII码数组的操作。

由于ASCII码是数值数组,所以各种数值运算、函数和操作对ASCII数组都适用。

w=find(a>='a'&a<='z'); %找出串数组中小写字母的元素位置ascii_a(w)=ascii_a(w)-32; %大小写字母ASCII值差32。

char(ascii_a)(6)中文字符串数组中文字符创建时一定要特别注意,字符外面的单引号对必须在英文状态下输入。

与英文文字字符情况一样,每个中文字符也是占一个元素位置。

但是中文ASCII值大于256。

A='这是一个算例。

';A_s=size(A) %串数组的大小A56=A([5 6]) %取串的子数组。

ASCII_A=double(A) %获取ASCII码char(ASCII_A) %ASCII翻译成字符(7)创建代单引号的字符串当串中文字包含(英文)单引号时,每个单引号符用“连续的2个单引号符”表示。

b='Example ''3.1.2-1'''(8)有小串构成长串ab=[a(1:7),' ',b,' .'] %第2 个输入为空格串ab =This is Example '3.1.2-1' .4.1.3复杂串数组的创建4.1.3.1多行串数组的直接创建1、多行串数组的直接创建在直接创建多行串数组时,关键是要保证同一串数组的各行字符数要相等,即保证各行等长,为此,有时不得不通过空格符的增减来调节各行的长度,使他们彼此相等。

【例4.1.3.1-1】多行串数组的直接输入示例。

clearS=['This string array ' %第一行在末尾添加空格保证以第二行等长。

'has multiple rows.']size(S)2、利用串操作函数创建多行串数组【例3.1.3.2-1】演示:用专门函数char 创建多行串数组示例。

S1=char('This string array','has two rows.')S1 =This string arrayhas two rows.4.1.3.2转换函数产生数码..字符串【例4.1.3.1-1】最常用的数组/字符串转换函数int2str , num2str , mat2str 示例。

(1)int2str把整数数组转换成串数组(非整数将被四舍五入圆整后再转换)A=eye(2,4);A_str1=int2str(A)size(A_str1)(2)num2str把非整数数组转换成为串数组(常用于图形中,数据点的标识)rand('state',0)B=rand(2,4);B3=num2str(B,3)【例4.1.3.1-2】综合例题:在MATLAB计算生成的图形上标出图名和最大值点坐标。

cleara=2; %设置衰减系数w=3; %设置振荡频率t=0:0.01:10;y=exp(-a*t).*sin(w*t); %产生函数数组[y_max,i_max]=max(y); %找最大值元素位置t_text=['t=',num2str(t(i_max))]; % <7> 生成最大值点的横坐标字符串y_text=['y=',num2str(y_max)]; % <8>生成最大值点的纵坐标字符串max_text=char('maximum',t_text,y_text); % <9>生成标志图名用的字符串%tit=['y=exp(-',num2str(a),'t)*sin(',num2str(w),'t)']; %<11> plot(t,zeros(size(t)),'k') %画纵坐标为0的基准线hold onplot(t,y,'b')plot(t(i_max),y_max,'r.','MarkerSize',20) %用大红点标最大值text(t(i_max)+0.3,y_max+0.05,max_text) % <16>再图上书写最大值点的数据值note:本例第7、8句是num2str指令的一种典型运用。

由这种方式组成的字符串的特点是:由数值转换而得的那部分字符时可以随计算所产生的数据而变。

4.2元胞数组许多大银行都有一个管理十分完善的保险箱库。

保险箱库的最小单位是箱柜,它可以存放任何东西(如珠宝、债券、现金、文件等)。

每个箱柜被编号,一个个编号的箱柜组合成排,一排排编号的箱柜组合成室,一个个编号的柜便组合成银行的保险库。

元胞数组(cell array)如同银行的保险箱柜一样,该数组的基本组分(element)是元胞。

每个元胞本身在数组中是平等的。

他们只能以下标区分。

元胞可以存放任何类型、任何大小的数组(如任意维数值数组、字符串数组、符号对象等)。

而且,同一个元胞数组中各元胞中的内容可以不同。

与数值数组一样,元胞数组维数不受限制,可以一维,二维或更高维,不过一维元胞数组用的最多。

元胞数组对元胞的编址方法也有单下标和全下标编址两种4.2.1元胞数组的创建和显示1、元胞标识寻访和内容编址寻访的不同无论在数值数组中,还是在字符串数组里,由于同一数组各元素的数据类型都相同,因此对元素的寻访也就是直接了当的。

比如对于二维数组A来说,A(2,3)就表示数组A第2行第3列元素。

对元胞数组来说,情况就不那么简单。

在元胞数组中,元胞和元胞里的内容是两个不同的范畴。

因此,寻访元胞和寻访元胞中的内容是两种不同的操作。

为此matlab设计了两种不同的操作:“元胞外标识”和“元胞内编址”。

以二维元胞数组A为例,A(2,3)是指其第2行第3列元胞元素;而{2,3}是指A 元胞数组第2行第3列元胞中所允许存或者取的内容,注意:这两者的区别仅在于:所用的括号不同,“外标识的元胞元素”用的是“圆括号”,而“编址元胞元素内涵”用的是“花括号”。

2、元胞数组的创建和显示2( 元胞数组的创建。

【例 4.2.1-1】本例演示:)2C_str=char('这是','元胞数组创建算例 1');R=reshape(1:9,3,3);Cn=[1+2i];S_sym=sym('sin(-3*t)*exp(-t)');(1)直接创建法之一:“外标识元胞元素赋值法”A(1,1)={C_str};A(1,2)={R};A(2,1)={Cn};A(2,2)={S_sym};A(2)直接创建法之二:“编址元胞元素内涵的直接赋值法”B{1,1}=C_str;B{1,2}=R;B{2,1}=Cn;B{2,2}=S_sym;celldisp(B) %显示元胞数组内容4.2.3元胞数组的扩充、收缩和重组元胞数组的扩充、收缩和重组的方法大致与数值数组情况相同。

【例4.2.3-1】元胞数组的扩充。

(1)利用cell指令创建元胞数组C=cell(2);C(:,1)={char('Another','text string');10:-1:1}(2)元胞数组的“列”扩充和“行”扩充“AC=[A C] %空格或逗号来分隔列A_C=[A;C] %分号用来分隔行【例4.2.3-2】cellplot能用图形形象化地表示元胞数组的内容。

(A_C取自上例)cellplot(A_C,'legend')【例4.2.3-2】元胞数组的收缩和重组。

(1)元胞数组的收缩和重组A_C(3,:)=[](2)重组R_A_C=reshape(A_C,2,3)4.2.4元胞数组内容的调取【例4.2.4-1】元胞数组内容的调取示例。

(1)调取一个元胞f1=R_A_C(1,3) %是用圆括号寻访得到的是元胞,而不仅是内容class(f1)f1 =[1x1 sym]ans =cell(2)调取一个元胞的内容f2=R_A_C{1,3} %用花括号寻访取得内容class(f2)f2 =sin(-3*t)*exp(-t)ans =sym(3)调取元胞内的子数组f3=R_A_C{1,1}(:,[1 2 5 6])f3 =这是元胞创建(4)同时调取多个元胞内容[f4,f5,f6]=deal(R_A_C{[1,3,4]})f4 =这是元胞数组创建算例 1f5 =10 9 8 7 6 5 4 3 2 1f6 =1 4 72 5 83 6 94.3构架数组与元胞数组一样,构架数组(structrre array)也能在一个数组里存放各类数据。

相关文档
最新文档