matlab基本语句.docx

上传人:小飞机 文档编号:3161232 上传时间:2023-03-11 格式:DOCX 页数:17 大小:42.72KB
返回 下载 相关 举报
matlab基本语句.docx_第1页
第1页 / 共17页
matlab基本语句.docx_第2页
第2页 / 共17页
matlab基本语句.docx_第3页
第3页 / 共17页
matlab基本语句.docx_第4页
第4页 / 共17页
matlab基本语句.docx_第5页
第5页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《matlab基本语句.docx》由会员分享,可在线阅读,更多相关《matlab基本语句.docx(17页珍藏版)》请在三一办公上搜索。

1、matlab基本语句第2章 MATLAB程序设计 MATLAB语言为解释型程序设计语言。在程序中可以出现顺序、选择、循环三种基本控制结构,也可以出现对M-文件的调用(相当于对外部过程的调用)。 由于 MATLAB开始是用FORTRAN语言编写、后来用 C语言重写的,故其既有FORTRAN的特征,又在许多语言规则方面与C语言相同。 2.1 顺序结构语句 在顺序结构语句中,包括表达式语句、赋值语句、输入输出语句、空语句等。 2.1.1 表达式语句 格式: 表达式, 显示表达式值 表达式; 不显示表达式值 表达式 显示表达式值 如: x + y, sin(x); 5 最后的表达式值暂保存在变量ans

2、中。 2.1.2 赋值语句 格式: v = 表达式, 结果送v并显示v v = 表达式; 结果送v不显示v v = 表达式 结果送v并显示v 2.1.3 空语句 格式: , ; 2.1.4 输入语句 1、input语句 格式1: input 功能: 显示提示字符串,可输入数字、字符串、或表达式 格式2: input 功能: 显示提示字符串,并把输入视为字符串 2、yesinput语句 格式: yesinput(提示字符串,缺省值,值范围) 功能: 显示提示字符串和缺省值,若只打入回车则以缺省值作为输入值,若输入的值不在指定范围内则认为输入无效,B并等待用户重新输入。 如: t=yesinput

3、(指定线的颜色, red,red|blue|green) 运行结果如下: 指定线的颜色(red):yellow %不在值内 指定线的颜色(red):blue %重输 t = blue x=yesinput(输入元素个数,10,1,20) 运行结果如下: 输入元素个数(10): x = 10 3、Keyboard语句 格式: Keyboard 功能: 暂停M-文件的执行,并等待用户从键盘输入命令以查看或改变变量的值,直到输入return命令而返回相应的M-文件继续执行。本语句用于调试M-文件。 4、pause语句 格式1: pause 功能:暂停,敲下任一键继续 格式2: pause(n) 功能

4、:暂停n秒 格式3: puase on 功能:本命令后的pause语句有效 格式4: pause off 功能:本命令后的pause语句无效 5、menu语句 格式: menu(菜单名,S1,S2,Sk) 功能:生成一个按钮式菜单系统 其中: 字符串S1,S2,Sk为菜单项(K32)。 函数返回值为用户选中的菜单项号。 如M-文件,menu_d.m如下: %选择一种颜色 while 1 k=menu(选择一种颜色,红色, 黄色,兰色,绿色,白色,关闭); if k = = 1 color = Red elseif k = = 2 color = Yellow elseif k = = 3 co

5、lor = Blue elseif k = = 4 color = Green elseif k = = 5 color = White elseif k = = 6 break end end 2.1.5 输出语句 1、直接终端显示 当一个表达式、赋值语句等语句用逗号或者回车作为结尾符,而不是分号作为结尾符时,该表达式或赋值语句的运行结果均在终端上显示出来。 2、diary语句 格式1: diary 文件名 功能: 打开指定的文件并将该语句之后终端显 示的内容记入该文件。 格式2: diary off 功能: 暂停记入显示内容到指定的文件 格式3: diary on 功能: 继续记入显示内容

6、到指定的文件 diary语句可产生一个日志文本文件,为以后书写报告或编辑M-文件提供素材。 3.disp 语句 格式: disp(x) 功能:显示x的值,但不显示x的名 4.sprintf 语句 格式: Str,ErrMsg = SPRINTF(格式串,表达式1,.) 其中:格式串与C语言的规定一致 Str存放结果的 功能: 按照格式串的规定把各表达式的实部分别转换为字符串并存入 Str,若有错误,则把错误信息存入ErrMsg 如: sprintf(%0.5g,(1+sqrt(5)/2) 1.618 sprintf(%0.5g,1/eps) 4.5036e+15 sprintf(%15.5f,

7、1/eps) 4503599627370496.00000 sprintf(%d,round(pi) 3 sprintf(%s,hello) hello sprintf(The array is %dx%d.,2,3) The array is 2x3. sprintf(n) 换行 2.1.6变量值的保存与恢复 1、保存工作空间中的变量到文件中 格式1: save 文件名 功能: 保存工作空间中的全体变量到指定文件(扩展名设定为.mat)中。若省略文件名,则文件名缺省为MATLAB.mat。该文件为二进制格式,称为MAT文件。 格式2: save 文件名 变量名表 -append 功能: 保存

8、指定的变量到文件中。变量名表中两变量之间用逗号或空格分开。 格式3: save 文件名 变量名表 -ascii -tabs 功能: 用8位数、ASCII码格式保存指定的变量到文件中。 格式4: save 文件名 变量名表 -ascii double-tabs 功能: 用16位数、ASCII码格式保存变量到指定文件中。 2、保存工作空间中的变量到C风格文件中 相关语句(后面详介): fid=fopen fwrite%二进制 fprintf fclose 3、恢复变量到工作空间 格式1: load 功能: 从MATLAB.mat文件中恢复变量 格式2: load 文件名 功能: 从指定文件中恢复变

9、量 格式3: load 文件名 -ascii 功能: 从无扩展名的文本文件中生成一个以文件名为变量名的数组(文件中含有m行、n列数据)。 格式4: load 文件名.扩展名 -mat 功能: 从具有指定扩展名的MAT文件中恢复变量。 格式5: load 文件名.扩展名 功能: 从具有指定扩展名的文本文件生成与文件名同名的数组。 例如: 设文本文件coff.txt中的数据为: 1,2,3,4,5 6,7,8,9,10 执行命令 load coff.txt 则命令 coff 将显示 coff= 1 2 3 4 5 6 7 8 9 10 格式6: A, Count = fread(fid,size,

10、precision) A,Count = fscanf(fid,format,size) 其中: precision可为: MATLAB C or Fortran Description uchar unsigned char unsigned character, 8 bits. schar signed char signed character, 8 bits. int8 integer*1 integer, 8 bits. int16 integer*2 integer, 16 bits. int32 integer*4 integer, 32 bits. int64 integer*

11、8 integer, 64 bits. uint8 integer*1 unsigned integer, 8 bits. uint16 integer*2 unsigned integer, 16 bits. uint32 integer*4 unsigned integer, 32 bits. uint64 integer*8 unsigned integer, 64 bits. single real*4 floating point, 32 bits. float32 real*4 floating point, 32 bits. double real*8 floating poin

12、t, 64 bits. float64 real*8 floating point, 64 bits. 功能: 从C风格文件中读入size个数据到A,Count为实际读入数据个数 2.2 选择结构 2.2.1 if语句 格式1: if 表达式 语句组 end 功能: 若表达式值的实部或值为真,则执行语句组 格式2: if 表达式 语句组1 else 语句组2 end 功能: 若表达式值实部非0或值为真,则执行语句组1,否则执行语句组2。 格式3: if 表达式1 语句组1 elseif 表达式2 语句组2 elseif 表达式n 语句组n else 语句组n+1 end 功能: 若表达式1为真

13、则执行语句组1 否则,若表达式2为真则执行语句2 否则若表达式n为真则执行语句组n 否则执行语句组n+1 2.2.2 switch语句 格式: switch 表达式 case e1 语句组1 case ex1,ex2,ex3,. 语句组2 . case exp1,exp2,exp3,. 语句组n otherwise, 语句组n+1 end 功能: 若表达式的值为e1则执行语句组1 否则,若表达式的值为ex1,ex2,ex3,中的一个,则执行语句组2 否则,表达式的值为exp1,exp2,exp3,中的一个,则执行语句组n 否则,则执行语句组n+1 例如: switch lower(METHOD

14、) case linear,bilinear disp(Method is linear) case cubic disp(Method is cubic) case nearest disp(Method is nearest) otherwise disp(Unknown method.) end 例如: clear; %创建元胞数组:a,b,c,d for i=1:10;ai=89+i;bi=79+i;ci=69+i;di=59+i;end; c=d,c; Name=李洪斌,赵向阳,龚 力,王立伟,马玉书; Mark=72,83,56,94,100;Rank=cell(1,5); % S

15、=struct(Name,Name,Marks,Mark,Rank,Rank); % for i=1:5 switch S(i).Marks case 100 S(i).Rank=满分; case a S(i).Rank= 优秀; case b S(i).Rank= 良好; case c S(i).Rank= 及格; otherwise S(i).Rank=不及格; end end % disp(学生姓名 , 得分 , 等级); for i=1:5; disp(S(i).Name,blanks(6),num2str(S(i).Marks),blanks(6),S(i).Rank); end;

16、学生姓名 得分 等级 李洪斌 72 及格 赵向阳 83 良好 龚 力 56 不及格 王立伟 94 优秀 马玉书 100 满分 2.2.3 try语句 格式2: try 语句组1 catch 语句组2 end 功能: 执行语句组1,若执行语句组1的过程中发生错误则执行语句组2。可查看lasterr中的内容,获取错误信息。 2.2.4 选择语句的嵌套 当以上选择语句出现在另一个选择语句的语句组中时,即构成了选择语句的嵌套。 当选择语句嵌套时,应注意一个if必须与一个距离最近的end匹配。 2.3 循环结构语句 2.3.1 for语句 格式1: for 变量初值:增量:终值 语句组 循环体 end

17、其中: 增量若省略时,增量值取为1。 功能: 表示对于变量从初值直到终值,每次变化一个增量的每一个值都执行语句组一次。 如: for n = 1:100 x(n) = sin(npi/100); end 本格式的for语句用于执行一定次数的循环 格式2: for 变量数组名 语句组 循环体 end 功能: 每次循环时取数组的下一列元素赋给变量,然后执行语句组,直到数组的全体列都取完为止。 如: a=1,5,9;0,1,1; for n=a,n(1)n(2), end ans = 1 ans = 6 ans = 8 2.3.2 while语句 格式: while 表达式 语句组 end 当表达式

18、的值为真或其实部为非0,重复执行语句组,直到表达式的值为0或其实部为0。 注意:表达式为数组时全部非0才为真。 如: a=1,3,5;1,0,1; n=0; while a0, n=n+1, end 由于a中含有一个0,故一次循环也未执行。 2.3.3 循环嵌套 在一个循环的循环体内又含有另一个循环结构,即构成循环的嵌套。 2.3.4 break语句 格式: break 功能: 该语句将中止当前它所在的循环。 如:找出mn之间的全体素数 function u=fq(m,n) 找出m到n的全体素数 fq(m,n) 若仅有一个参数则m= 2,给出参数作为n 若没有参数则m = 2,n = 100

19、1999.3 if nargin = 0, m = 2; n = 100; elseif nargin = 1, n = m; m = 2; end i=1; for t = m:n, if t = 2; for r = 2:t1, if fix(t/r)r = t/rr, break end end if r=t1,u(i)=t;i=i+1;end else u(i)=t;i=i+1; end end 执行fq的运行结果: ans = Columns 1 through 12 2 3 5 7 11 13 17 19 23 29 31 37 Columns 13 through 24 41 4

20、3 47 53 59 61 67 71 73 79 83 89 Column 25 97 2.4 文件读写函数 1、fopen函数 fid = fopen 其中: 权限可为r、w、 a、rb、wb、 ab、rt、wt、at。 功能: 函数执行成功,fid中为一整数,表示文件代号;否则为1。 2、fclose函数 fclose(fid) 或 fclose(all) 3、fprintf函数 count=fprintf(fid,格式串,输出名表) 功能: 将输出名表中的成员依次按格式串输出到fid文件中,返回输出的字节数。关于格式串的规定与C相同。如%s(字符串输出)、%d、%10.2f(实数输出,

21、共10个字符宽,含两位小数)等。 4、fscanf函数 变量,count=fscanf(fid,格式串,长度) 功能: 从文件fid中读取指定长度(按格式串控制)的数据到变量中,count为读入字节数,若长度省略,表示整个文件。若为m,n表示读入一个m行n列的矩阵到变量中。 5、fread函数 变量,count = fread 功能: 读fid文件中的二进制数据到变量中,长度含义同fscanf函数。 6、fwrite函数 count = fwrite 功能: 将变量中的全体元素按二进制形式写入fid文件中。count为成功写入的元素个数。 7、fgetl函数与fgets函数 变量= fgetl

22、(fid) 变量= fgets(fid) 功能: 均为从fid中读入一行,但前者读入时不含回车换行,而后者包含回车换行。 还有其它一些函数,请参阅相关书籍。 2.5 一个可运行MATLAB命令的函数 格式: eval 功能: 该函数将执行宏替换:即把字符串看成一个命令(有点类似于C中的System函数) 如: for n = 1:3 eval(M,num2Str(n),= magic(n) end 执行后结果为: M1 = 1 1 M2 = 2 1 3 4 2 M3 = 3 8 1 6 3 5 7 4 9 2 阶魔方阵 阶魔方阵 阶魔方阵 注意:程序中方括号的使用,可把其中各字符子串拼接起来,

23、也可写成: f = M,num2str(n),magic(n); eval(f) 又如: m=5;t=1/(i-1+j); a = zeros(m); for i = 1:m for j = 1:m a(i,j) = eval(t); end end a 执行后结果为: a = 1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250 0.2000 0.1667 0.1429

24、 0.1250 0.1111 在MATLAB中还有其他类似的函数,如: feval, evalin, assignin, evalc 2.6 局部工作空间和基本工作空间 在MATLAB命令窗口中使用的工作空间为基本工作空间,在该窗口中定义的变量、非函数文件中定义的变量以及全局变量均存在于该工作空间中。 各函数文件中所定义的变量仅存在于相应的局部工作空间中,也就是说,一个函数文件执行结束后,其定义的变量也随之消失了。 函数文件之间可以通过输入、输出参数传递信息。也可以通过使用全局变量传递信息。 global 变量名表 该命令使相应变量名表中的变量成为全局变量,出现在各函数中global命令中的相同变量名将取得同一值。

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号