Matlab课件--第二讲程序设计.ppt_第1页
Matlab课件--第二讲程序设计.ppt_第2页
Matlab课件--第二讲程序设计.ppt_第3页
Matlab课件--第二讲程序设计.ppt_第4页
Matlab课件--第二讲程序设计.ppt_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

1、2 .1 M 文件编程 2 .2 变量及其赋值 2 .3 Matlab 矩阵 2 .4 矩阵运算 2 .5 元素群运算 2 .6 逻辑判断 2 .7 流程控制 2 .8 字符数组 2 .9 结构和单元数组 2 .10 数据的输入输出及文件的读写 2 .11 时间和日期,第二讲 MATLAB语言基本语法,一、M文件,2 .1 M 文件编程,根据调用方式不同分为两类: 命令文件:执行一系列Matlab语句 函数文件:接受输入参数和产生输出,1、M文件概述,包括Matlab语言代码的文件叫M文件,扩展名为.m,2、建立M文件,菜单操作:在主窗口file菜单filenewM-file 命令操作:在co

2、mmand window中输入 edit 工具按钮: 主窗口工具栏中最左面白色按钮,注: 运行m文件之前,必须将文件放在MATLAB的搜索路径上.,3、例题,例2.1 分别建立命令文件和函数文件,将华氏温度 f 转换为 摄氏温度c,程序1: 建立命令文件并以文件名eg2_1.m存盘。 clear; %清除工作空间中的变量 f=input(Input Fahrenheit temperature:); c=5*(f-32)/9,运行: (1) 在程序编辑窗运行 debugrun,(2) eg2_1,执行情况: Input Fahrenheit temperature:78 c=25.5556,程

3、序2: 建立函数文件并以文件名feg2_1.m存盘。 function c=feg2_1(f) c=5*(f-32)/9,函数调用: (1) 在命令窗中调用,执行情况: Input Fahrenheit temperature:78 c=25.5556 x=25.5556,clear; y=input(Input Fahrenheit temperature:); x=feg2_1(y),(2) 在命令文件中调用函数 建立命令文件eg.m,clear; y=input(Input Fahrenheit temperature:); x=feg2_1(y),执行情况: Input Fahrenh

4、eit temperature:78 c=25.5556 x=25.5556,二、命令文件,例2.2 二阶系统的时域曲线。时域输入输出之间关系为:,命令文件程序设计: %eg22 二阶系统时域曲线 x=0:0.1:20; y1=1-1/sqrt( 1-0.32)*exp( -0.3*x ).*sin( sqrt( 1-0.32 ) *x+acos ( 0.3 ); plot(x,y1,r) %画阻尼系数为0.3的曲线 hold on y2=1-1/sqrt(1-0.7072)*exp(-0.707*x).*sin(sqrt(1-0.7072)*x+acos(0.707); plot(x,y2,

5、g) %画阻尼系数为0.707的曲线 y3=1-exp(-x).*(1+x); plot(x,y3,b) %画阻尼系数为1的曲线,特点: 命令文件是一些命令行的组合,在命令文件中可调用内 部函数或自己编写的函数 (2) 没有输入参数和输出参数 (3) 命令文件中产生的所有变量和结果都保存到工作空间中,三、函数文件,例2 .2 函数文件程序设计,程序设计: function y=eg202(zeta) %二阶系统时域响应曲线 %E052 Step respnse of quadratic system % zeta 阻尼系数 % y 时域响应 x=0:0.1:20; y=1-1/sqrt( 1-

6、zeta2)*exp( -zeta*x ).*sin( sqrt( 1-zeta2 ) *x+acos ( zeta); plot(x,y),函数定义行,函数名eg202,输入参数zeta,帮助信息的第一行,帮助信息的正文,函数体,输出参数y,1、函数文件的组成,函数定义行 function 输出形参表=函数名(输入形参表) 注释行 函数体,2、函数文件的命名,必须以字母开头,其余字符可以是字母、数字和下划线 Matlab只识别名字的前31个字符 函数的文件名应该与函数名相同 例:函数名average 文件名average.m,3、Matlab如何调用函数文件,在命令窗中调用 在命令文件中调用

7、,格式:输出实参表=函数名(输入实参表),在命令窗中调用,在命令文件中调用,例2 .3 编写函数文件求半径为r的圆的面积和周长,程序: function s,p=fcircle(r) %CIRCLE calculate the area and perimeter of a circle of radii r %r 圆半径 %s 圆面积 %p 圆周长 s=pi*r*r; p=2*pi*r;,函数文件名为:fcircle.m,调用:,r=input(please input r=); s,p=fcircle(r),运行:,Please input r=4 s=50.2655 p=25.1327,

8、一、变量,2 .2 变量及其赋值,格式:变量=表达式(或数),最长识别字符63个 字符由字母、数字和下划线组成 第一个字符必须是英文字母 对大小写敏感(默认状态),二、赋值语句,赋值就是把数赋予代表常量或变量的标识符 Matlab 中的变量或常量都代表矩阵,x=10; y=20; z=sqrt(5),三、预定义变量,ans 当一个表达式没有给定输出变量时,matlab把最新计算结果赋值给变量ans pi 圆周率 i,j 虚数单位 inf 无穷大 n/0 n非零实数返回inf,不中断继续运行 Nan 非数 可以是inf/inf 或n/0其中n=0或复数,四、相关命令,clear 删除matlab

9、工作空间中变量 who 只显示出工作空间中变量的名称 whos 给出变量名、大小、所占字节数及数据类型,格式:who,格式:whos whos 变量名,五、输出显示格式,在一般情况下,MATLAB内部每一个数据元素都是用双精度数来表示和存储的。数据输出时用户可以用format命令设置或改变数据输出格式。,格式:format 格式符,例:变量的有效数字可以依需要不同,使用format命令来定义,六、复数,1、复数的表示方法,Matlab 的每一个元素都可以是复数 复数的虚数部分用 i 或 j 例: c=3+5.2i,2、复数矩阵赋值方法,将其元素逐个赋值 例:z=1+2i,3+4i;5+6i,7

10、+8i 结果: z = 1.0000 + 2.0000i 3.0000 + 4.0000i 5.0000 + 6.0000i 7.0000 + 8.0000i,将其实部和虚部矩阵分别赋值 例:z=1,3;5,7+2,4;6,8*i 结果: z = 1.0000 + 2.0000i 3.0000 + 4.0000i 5.0000 + 6.0000i 7.0000 + 8.0000i,一、矩阵赋值,2 .3 Matlab矩阵,1、直接输入,A=1 2 3;4 5 6;7 8 9,显示结果: a = 1 2 3 4 5 6 7 8 9,矩阵的值放在方括号中 按矩阵行的顺序输入各元素 同一行中各元素之

11、间以逗号或空格分开 不同的行以分号隔开 语句的结尾可用回车符、逗号或分号(注意区别),x=-1.3,sqrt(3),(1+2+3)/5*4; x,显示结果: x = -1.3000 1.7321 4.8000,2、给矩阵元素赋值,通过下标引用矩阵的元素,例:B(3,2)=200 采用矩阵元素的序号来引用矩阵元素,矩阵元素表示方法,矩阵元素的序号:相应元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。,例:A=1,2,3;4,5,6 A(3) A(5),A =1 2 3 4 5 6,ans =2,ans =3,赋值元素的下标超出了原矩阵的大小,矩阵的行列会

12、自动扩展,自动扩展维数的功能只适用于赋值语句,例:a=1 2 3;4 5 6;7 8 9; a(2,3)=0; a(4,3)=10; a,显示结果: a = 1 2 3 4 5 0 7 8 9 0 0 10,3、利用冒号表达式赋值,冒号表达式可产生一个行向量,格式:e1:e2:e3,例:t=0:2:10,t = 0 2 4 6 8 10,例:b=1 2;4 5; b(3,:)=7 8; b,结果: b =1 2 4 5 7 8,可用冒号给全行赋值,c=b(:),结果:c= 1 4 7 2 5 8,4、linspace函数,格式:linspace(a,b,n),功能:生成一个等间隔的行向量,例:

13、x=linspace(1,5,5),x = 1 2 3 4 5,二、矩阵的连接,即把小矩阵连接起来组成大矩阵,例:a=1 2;3 4; b=5 6 3;1 5 3; c=a b;b a,c =1 2 5 6 3 3 4 1 5 3 5 6 3 1 2 1 5 3 3 4,1、利用冒号表达式获得子矩阵,A(:,j)表示取A矩阵的第j列全部元素; A(i,:)表示A矩阵第i行的全部元素; A(i,j)表示取A矩阵第i行、第j列的元素。,A(:,2),A(2,2),ans=4,三、矩阵的拆分,A=1 2;3 4,ans=2 4,A(2,:),ans=3 4,A(i:i+m,:)表示取A矩阵第ii+m

14、行的全部元素 A(:,k:k+m)表示取A矩阵第kk+m列的全部元素 A(i:i+m,k:k+m)表示取A矩阵第ii+m行内, 并在第kk+m列中的所有元素,B=A(:,1:2),B=4 5 7 8,B=A(2:3,1:2),B=1 2 4 5 7 8,A(i i+3 i+n,j j+2 j+m) 表示取A矩阵第i行、i+3行、i+n行并且在第j列、j+2列、j+m列内的元素,B=A(1 3,1 3),C=A(1:3),D=A(1:3,2:3),B=1 3 7 9,C=1 4 7,D= 2 3 5 6 8 9,2、利用空矩阵删除矩阵的元素,空矩阵:没有任何元素的矩阵 ,零矩阵:元素存在,其数值

15、为零,A=1 2 3 7 8 9,A(2 , : )= ,A(: ,2 )= ,A=1 3 4 6 7 9,利用空矩阵可使矩阵维数缩减,对任何一个矩阵赋值 ,使它的元素都消失,四、基本矩阵,zeros(m,n) 全0矩阵 ones(m,n) 全1矩阵 eye(n) 单位阵 rand(m,n) 产生01间均匀分布的随机矩阵 randn(m,n) 正态随机数矩阵,f1=ones(3,3),f1 = 1 1 1 1 1 1 1 1 1,f1=ones(3),f1 = 1 1 1 1 1 1 1 1 1,f2=zeros(2,3),f3=eye(2),f2 = 0 0 0 0 0 0,f3 = 1 0

16、 0 1,例: 建立在区间20,50内均匀分布的5阶随机矩阵。,x=20+(50-20)*rand(5),五、特殊矩阵,例:将101116等16个数填入一个4行4列的表格中,使其每行每列及对角线的和均为434,1、魔方矩阵:magic(n) 特点:每行每列及两对角线上的元素和都相等。 n阶魔方阵其元素为1、2、n共n个整数组成,M=100+magic(4),M =116 102 103 113 105 111 110 108 109 107 106 112 104 114 115 101,magic(4),ans =16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1,

17、例:A=vander(2;3;4;5;6),2、范德蒙矩阵:vander(V) 作用:生成以向量V为基础向量的范德蒙矩阵 方法:最后一列全为1 倒数第2列为一个指定的向量 其他各列是其后列与倒数第二列的点乘积,A = 16 8 4 2 1 81 27 9 3 1 256 64 16 4 1 625 125 25 5 1 1296 216 36 6 1,2 .4 矩阵运算,一、矩阵的加减法,规则: 对应元素相加减 两矩阵阶数相同,命令:c=a+b 或c=a-b,例: a=1 2;3 4; b=5 6;7 8; c=b-a,二、矩阵的乘法,规则:,例: a=1 2;3 4; b=5 6;7 8;

18、c=a*b,思考:x=a*2,x = 2 4 6 8,c=4 4 4 4,c = 19 22 43 50,1、矩阵除法的引入:由逆矩阵的概念引申而来,逆矩阵:对于任意方阵A(n,n),若有同价方阵V,使AV=I,则 V是A的逆阵,命令:V=inv(A),方程:D*X=B 其中X为未知矩阵,inv(D)*D*X=inv(D)*B X=inv(D)*B=DB,左除:把D的逆阵左乘以B,记作D,称为“左除”,方程:X*D=B 其中X为未知矩阵,X*D *inv(D) = B* inv(D) X=B*inv(D) =B/D,右除:把D的逆阵右乘以B,记作D/,称为“右除”,三、矩阵的除法,程序:cle

19、ar A=6 3 4;-2 5 7;8 -4 -3; B=3;-4;-7; X=AB,说明:方程个数等于未知数个数且|A|不等于0时有唯一解,若|A|=0时有无穷多解或无解,2、矩阵除法的应用:,解方程组:,X = 0.6000 7.0000 -5.4000,解方程组,例2:,程序设计: clear A=6 3 4;-2 5 7;8 -4 -3;1 5 -7; B=3;-4;-7;9; X=AB,运行结果: X = -0.1564 1.0095 -0.6952,说明:方程个数多于未知数个数,matlab给出的是最小二乘解,无解,程序设计: clear A=6 3 4;-2 5 7; B=3;-

20、4; X=AB,运行结果: X = 0.7400 0 -0.3600,方程个数少于未知数个数,方程组有无穷多解,给出的是其中一个解,例3:,3/4 43,=0.75, a=1 2;5 2;b=6 7;1 3; c=a/b d=ba,ans=2.1000 5.0000,对于含有标量的运算, AB=B/A 对于矩阵运算,一般ABB/A, a=1 0.5 25 a/5 5a,c =0.0909 0.4545 1.1818 -2.0909,d = -2.9091 -0.7273 2.6364 0.9091,矩阵的幂运算:,命令:An,矩阵的转置:,命令:A,矩阵的求逆:,命令:inv(A),矩阵的行列

21、式:,命令:det(A),矩阵的秩:,命令:rank(A),矩阵的迹:对角线元素之和,命令:trace(A),矩阵的特征值和特征向量: 命令:d=eig(A) V,D=eig(A),四、矩阵的其他运算,例:求A矩阵的转置、行列式、逆及矩阵的秩,B=A C=det(A) D=inv(A) E=rank(A),B=1 6 7 2 5 9 3 4 8,C =21,D= 0.1905 0.5238 -0.3333 -0.9524 -0.6190 0.6667 0.9048 0.2381 -0.3333,E =3,例:求A矩阵的特征值及特征向量,求特征值问题:,命令: d=eig(A) 功能: 返回方阵

22、A的全部特征值所构成的向量 命令: V,D=eig(A) 功能:求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。,程序:, d=eig(A),V,D=eig(A),d = 1.0000 1.0000,V = 0.7071 -0.7071 -0.7071 0.7071 D = 1.0000 0 0 1.0000,2 .5 元素群运算,元素群运算式矩阵中所有元素按单个元素进行运算 运算符:.* . .,例:X=1 2 3,Y=4 5 6, D=1 4 7;8 5 2;3 6 0,Z=X.*Y Z=X.Y Z=X.Y Z=X.2 D3 D.3,Z=4 10 18,Z=4.0000

23、 2.5000 2.0000,Z=1 32 729,Z=1 4 9,636 510 804 957 516 486 612 441,1 64 343 512 125 8 27 216 0,X*Y能成立吗,元素群有没有左除右除之分,X2能成立吗,区别: 矩阵运算式作为一个整体来运算。 运算符:* / 函数:指数函数:expm 对数函数:logm 开方函数:sqrtm 其他函数都是对矩阵中的元素进行运算,即元素群运算。 运算符:.* . . 函数:指数函数:exp 对数函数:log 开方函数:sqrt,例:列出一个三角函数表,程序设计: clear x=0:0.1:pi ; disp( x sin

24、(x) cos(x) tan(x) ) disp(-) disp(x,sin(x),cos(x),tan(x),x sin(x) cos(x) tan(x) - 0 0 1.0000 0 0.1000 0.0998 0.9950 0.1003 0.2000 0.1987 0.9801 0.2027 0.3000 0.2955 0.9553 0.3093 .,2 .6 、运算符,一、算术运算符 二、关系运算符 三、逻辑运算符,进行数值计算,加、减、乘、除,两个元素之间数值的比较 大于、小于、等于,逻辑运算,与、或、非,在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。,二、关系运

25、算符,主要用于比较数、字符串、矩阵之间的大小和不等关系,结果:0 表示该关系式为“假” 1 表示该关系式为“真”,关系运算符的运算法则为:(1) 当两个比较量是标量时,直接比较两数的大小。 (2) 当参与比较的量是同维矩阵时,两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。 (3) 当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。,例2:设a=1 3;2 4 判断a

26、中元素是否大于2,程序:a=1 3;2 4; a2,结果:ans = 0 1 0 1,例1:设a= 1 -2 3;4 5 -4;5 -6 7 找出小于0的矩阵元素的位置,程序:a=1 -2 3;4 5 -4;5 -6 7; b=find(a0),结果:b = 4 6 8,indices = find(X):找非零元素的序号 i,j = find(X):找非零元素的行、列 i,j,v = find(X):找非零元素的行、列,并返回非零值,例3 产生5阶随机方阵A,其元素为10,90区间的随机整数,然后判断A的元素是否能被3整除。,1) 生成5阶随机方阵A。A=fix(90-10)*rand(5)

27、+10)2) 判断A的元素是否可以被3整除。 P=rem(A,3)=0,fix(X) :取各个元素的整数部分,rem(A,3)是矩阵A的每个元素除以3的余数矩阵,P = 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0,A = 87 27 42 64 26 89 61 69 27 58 73 35 31 77 60 45 86 45 60 39 49 68 84 20 56,例:设a=0 1 1 0,b=1 1 0 0 求a与b的值,程序:a=0 1 1 1; b=1 1 0 0; x=a for i=1:1:100; sum=sum+i; e

28、nd sum,sum =5050,在实际MATLAB编程中,采用循环语句会降低其执行速度。,clear; tic; for i=1:5000; b(i)=sqrt(i); end t=toc; disp(time for loop method:,num2str(t);,time for loop method:0.047,clear; tic; a=1:5000; b=sqrt(a); t=toc; disp(time for vector method:,num2str(t);,time for vector method:0.016,2、while语句,结构: While 逻辑表达式 语

29、句组 end,例:求1100的偶数和,程序: clear x=0;sum=0; while x101 sum=sum+x; x=x+2; end sum,3、if 语句,结构: if 表达式1 语句1 else if 表达式2 (可选) 语句2 else (可选) 语句3 end end,例:思考下列程序写出运行结果,clear a=input(input a=) b=input(input b=) if ab fprintf(ab) else fprintf(a=b) end end,4、switch语句,结构: switch 表达式 case 常量表达式1 语句组1 case 常量表达式2

30、 语句组2 otherwise 语句组n end,说明:1、switch 后面的表达式可以是任何类型,如数字、字符串 2、当表达式的值与case后面常量表达式的值相等时,就执行这个case后面的语句组,如所有的常量表达式的值都与这个表达式的值不相等时,则执行otherwise后的语句组 3、各个case和otherwise语句的顺序可以互换 4、当第一个case 语句为真时,余下的case语句将不再执行。,例: clear n=input(输入n=) switch n case -1 disp(negative one) case 0 disp(zero) case 1 disp(positi

31、ve one); otherwise disp(other value); end,结果: 输入n=1 positive one,5、 contine 语句,说明:常用于for或while 循环体中,其作用就是终止一次循环的执行,跳过本次循环中余下的语句,去执行下一次的循环。,例:思考运行结果,clear a=3; b=6; for i=1:3 b=b+1 if i2 continue end a=a+2 end,结果: b =7 b =8 a =5 b =9 a =7,6、 break 语句,说明:常用来结束for或while循环。在循环里遇到break语句时,会跳出循环,接着执行循环外的语

32、句。 注意:只终止最内层的循环,例:思考运行结果,for n=100:200 if rem(n,21)=0 continue end break end n,结果: n=105,求100,200之间第一个能被21整除的整数,6、return 语句,说明:使它所在的函数结束运行,并返回到上级调用函数,结构: function 函数名(参数) return ,例:判断两个正数的大、小(利用函数编程),function minmax(a,b) if (ab fprintf(the larger number is %f,a) else if ab fprintf(the larger number

33、is %f,b) else fpintf(%f equals %f,a,b) end end end,保存为minmax.m,主程序: clear a=input(input a number:); b=input(input a number:); minmax(a,b),结果: input a number:2 input a number:3 the larger number is 3.000000,7、try语句 语句格式为: try 语句组1 catch 语句组2 end,执行过程:try语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的laster

34、r变量,并转去执行语句组2。,例: 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。 程序: A=1,2,3;4,5,6; B=7,8,9;10,11,12; try C=A*B; catch C=A.*B; end C lasterr %显示出错原因,C = 7 16 27 40 55 72 ans = Error using = mtimes Inner matrix dimensions must agree.,2 .8 字符数组,一、字符数组,1、字符数组的定义,直接赋值 str=How are you doing ? char 创建字

35、符数组 str=char(How are you doing?),2、字符数组的判断,class(str) ans=char ischar(str) ans=1,3、字符和ASCII值的转换,str1=double(str) %字符串转换为数字值 str=How are you doing str1=double(str),字符按一个16位的数字值来存储,str1 =Columns 1 through 17 32 72 111 119 32 97 114 101 32 121 111 117 32 100,str=char(str1) %数字值转换为字符串,str =How are you d

36、oing,4、二维字符数组的生成,直接赋值 str=How are you doing?;I am fine , and you? str =How are you doing? I am fine , and you? str=How are you doing?;I am fine . str =How are you doing? I am fine . 用char函数生成 str=char(How are you doing?,I am fine . ),每一行具有相同的长度 短的字符串后以空格补足 Char函数会自动对所有字符串补偿到最长字符串的长度,5、提取字符串,格式: debl

37、ank(str) 功能:删除所有补充的空格 str=How are you doing?;I am fine . str1=deblank(str(2,:) str1 =I am fine. size(str1) ans = 1 10,字符串比较函数 strcmp :比较两个字符串是否相等 strncmp: 比较两个字符串的前n个字符是否相等 str1=white; str2=while; c=strcmp(str1,str2) c =0 c=strncmp(str1,str2,2) c =1,6、字符串比较,7、字符串查找和替换 格式: k = findstr(str1,str2) 功能:字

38、符串查找函数,返回子串的起始位置 s = Find the starting indices of the shorter string.; findstr(s,the) findstr(the,s),格式:str = strrep(str1, str2, str3) 功能:查找替换函数 lable=riqi,10/28/98; newlable=strrep(lable,28,30),ans =6 30,newlable =riqi,10/30/98,2 .9 结构和单元数组,一、结构数组,结构数组:是根据属性名组织起来的不同类型数据的集合, 结构里的数据是根据属性名引用,单元数组:以单元为

39、基本单位的数组 单元里的数据是根据矩阵下标引用,1、结构数组的创建,用赋值语句, ziliao.xinming=王明 ziliao.xuehao=1; ziliao.chengji=79 82 76;88 67 95;70 85 60;,ziliao = xinming: 王明 xuehao: 1 chengji: 3x3 double,ziliao,扩充结构数据, ziliao(2).xinming=李华; ziliao (2).xuehao=2; ziliao (2).chengji=86 78 68;90 87 66;65 79 70; ziliao,ziliao = 1x2 struc

40、t array with fields: xinming xuehao chengji,ziliao (2),ans = xinming: 李华 xuehao: 2 chengji: 3x3 double,ziliao (2).chengji,ans =86 78 68 90 87 66 65 79 70,用函数struct进行定义,格式:str_array=struct(field1,val1,field2,val2,), weather(3)=struct(temp,72,rainfall,0.0),weather = 1x3 struct array with fields: temp

41、rainfall,weather,weather(1),ans = temp: rainfall: ,weather(2),weather(3),ans = temp: rainfall: ,ans = temp: 72 rainfall: 0,3、增加结构属性, weather(1).wind=北风, weather(1) ans = temp: 68 rainfall: 0.2000 wind: 北风, weather(2) ans = temp: 80 rainfall: 0.4000 wind: ,4、删除结构属性,格式:struc2=rmfield(array,field), wea

42、ther=rmfield(weather,wind) weather = 1x3 struct array with fields: temp rainfall,二、单元数组,1、单元数组的创建,左标志法, c1,1=4+6i; c1,2=上海; c2,1=1 2 3;4 5 6;7 8 9; c2,2=1 2 3 4 5 6 7 8 9;, c c = 4.0000+ 6.0000i 上海 3x3 double 1x6 double,显示1, c2,1,ans = 1 2 3 4 5 6 7 8 9, c2,1(2,2),ans =5, celldisp(c) c1,1 =4.0000 +

43、6.0000i c2,1 = 1 2 3 4 5 6 7 8 9 c1,2 =上海 c2,2 =1 2 3 4 5 6,显示2, 用cell函数, B=cell(1,2); B(1,1)=hello; B(1,2)=cell(2,2); B1,2(1,1)=test; B1,2(1,2)=2 1; B1,2(2,1)=2; B1,2(2,2)=1 2;3 4, 用直接赋值语句,B(1,1)=hello; B1,2(1,1)=test; B1,2(1,2)=2 1; B1,2(2,1)=2; B1,2(2,2)=1 2;2 3,2 .10 数据的输入输出及文件的读写,一、数据的输入,1、以赋值的

44、形式直接生成数据,input 格式:user_entry=input(prompt) user_entry=input(prompt,s) r=input(please input data:),reply = input(Do you want more? ,s),please input data:5 r =5,Do you want more? y reply =y,2、使用M文件把数据调入内存,建立一个M文件:data.m,内容:A=1 2 3;4 5 6;7 8 9;,在命令窗口运行M文件:data.m, data,矩阵A的内容调入内存,并保存在工作空间中,3、用load命令从文件里恢复变量,格式: Load :从文件matlab.mat里恢复变量, load(filename): 从文件filename.mat里恢复变量, load(filename, X, Y, Z):从文件filename.mat里恢复 指定变量X、Y、Z, S = load(.),二、数据的输出,1、直接显示在终端,a =16 2 3 13 5 11 10 8 9 7 6 12 4 14 15

温馨提示

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

评论

0/150

提交评论