第1章 MATLAB基础知识与编程方法.pdf
第 1 章 MATLAB 基础知识与编程方法第 1 章 MATLAB 基础知识与编程方法 第 1 章 MATLAB 基础知识与编程方法 第 1 章 MATLAB 基础知识与编程方法 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 本章主要介绍与 MATLAB 编程相关的一些基础知识.1.1 MATLAB 快速入门 启动 MATLAB 软件后,得到如图 1-1 画面:工作路径 设置工作路径 工作空间中 变量名窗口 工作空间或MATLAB命令窗口 历史命令窗口 图 1-1 在工作空间或 MATLAB 命令窗口中输入 MATLAB 认可的任何命令,按回车键都可执行其操作.如“3+5”、“3-5”、“3*5”、“3/5”、“3/5+1”、“3/(5+1)”、“3/5*2”、“3/(5*2)”、“exp(1)”、“sin(3.1415)”等按回车键后可显示其结果.记录内存变量名窗口及记录历史命令窗口等可通过菜单栏中 view 下拉菜单中Workspace 及 Command History 等命令显示或隐藏.命令 clc 清出 MATLAB 命令窗口中所有内容;命令 clear 清出工作空间中所有变量;命令 clear x 清出工作空间中变量 x.要想知道某个命令的用法,可以用 help.例如:help plot可得到绘图命令 plot 的用法.百分号%后所有的文字为注释,注释语句不能执行.在 PC 机上运行时,可以随时按下 CTRL+C 键中断 MATLAB 的运行.1.2 变量、数据与函数 1.2.1 变量 像任何其它计算机语言一样,MATLAB 也有变量命名规则.变量名必须是不含有空格 1第 1 章 MATLAB 基础知识与编程方法第 1 章 MATLAB 基础知识与编程方法 的单个词.变量命名规则(基本上同 C 语言)如下:变量名区分字母大小写,如 ltems,items,itEms 及 ITEMS 都是不同的变量.MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLAB5.3 以下的版本变量名最多不超过 19 个字符.第 19 个字符之后的字符将被忽略,如 howaboutthisvariablename 只能表示为 howaboutthisvariabl.变量名必须以字母打头,之后可以是任意字母、数字或下划线,如 x1,x2,a_b_c.标点符号在 MATLAB 中具有特殊含义,所以变量名中不允许使用标点符号.除了这些命名规则,MATLAB 还有几个特殊变量.表 1.1 特殊变量表 特殊变量 取值或说明 备注 ans 用于结果的缺省变量名 Inf 无穷大,如 1/0 NaN 不定量,如 0/0 pi 圆周率 eps 计算机的最小数,当和 1 相加就产生一个比 1 大的数 flops 浮点运算数 i(和)j i2=j2=1 nargin 所有函数的输入变量数目 nargout 所有函数的输出变量数目 realmin 最小可用正实数 realmax 最大可用正实数 表 1.1 中的特殊变量在启动 MATLAB 之后,自动赋予表中取值.如果定义了相同名字的变量,原始特殊取值将会丢失,直到清除所有变量或重新启动 MATLAB.一般来讲,应当尽量避免重新定义特殊变量,特别是备注中打“”变量.1.2.2 数据建立 MATLAB 中的数据变量无需申明其变量类型,这是它与 C 语言的区别之一.例如,键入 a=7-5,x=1,2,3;y=1,2,3;4,5,6,c=1 2 3,d=1 2 3;4 5 6;可建立单一变量 a,一维数组 x,c,二维数组 y,d;并在 MATLAB 命令窗口中显示 a=2 y=1 2 3 4 5 6 c=1 2 3 多条命令可以放在同一行,中间用逗号或分号隔开.逗号要求显示结果,分号禁止显示结果.没有显示 x,d,是因为该命令是以分号“;”结束的.若要知道某个变量或数组的内容,2第 1 章 MATLAB 基础知识与编程方法第 1 章 MATLAB 基础知识与编程方法 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 在 MATLAB 命令窗口中键入变量或数组名回车即可.在数组的输入方式上,x 和 c 一样,y和 d 一样.内的“;”表示换行,直接换行也可.如将 Word 文当中一个 4 行 5 列的数据可拷贝到“A=”中的 内,则 A 表示一个 4 行 5 列的二维数组.在 MATLAB 中,一维数组 x 中第 k 个元素用 x(k)访问,二维数组 A 中第 i 行第 j 列元素用 A(i,j)访问,这与 C 语言是有区别的.同样是一维数组,在 MATLAB 中一维行向量和一维列向量是不同的.等步长一维数组产生方法,如键入 x=1:0.5:4,y=1:4,z=4:2 显示 x=1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 y=1 2 3 4 z=在命令 x=1:0.5:4 中的 0.5 表示步长,缺省时步长为 1.三维以上数组可通过一系列相同维数的低维数组表示.1.2.3 常用数学函数 MATLAB 所支持的常用数学函数见表 1.2.注意,MATLAB 只对孤度操作.表 1.2 常用数学函数 命令 说明 命令 说明 abs(x)绝对值 floor(x)对-方向取整数 acos(x)反余弦 gcd(x,y)整数 x 和 y 的最大公约数 acosh(x)反双曲余弦 lcm(x,y)整数 x 和 y 的最小公倍数 asin(x)反正弦 log(x)自然对数 asinh(x)反双曲正弦 log10(x)常用对数 atan(x)反正切 rem(x,y)除后余数;返回 x/y 的余数 atanh(x)反双曲正切 round(x)四舍五入到最接近的整数 ceil(x)对+方向取整数sin(x)正弦 cos(x)余弦 sinh(x)双曲正弦 cosh(x)双曲余弦 sqrt(x)平方根 exp(x)指数函数extan(x)正切 fix(x)对零方向取整数 tanh(x)双曲正切 1.3 数组或矩阵运算 由于数组和矩阵的含义有一样,因此,所有有关矩阵的运算都可以用于数组运算,今后不再区分数组与矩阵.3第 1 章 MATLAB 基础知识与编程方法第 1 章 MATLAB 基础知识与编程方法 1.3.1 矩阵块操作 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLAB 中提供了很多简便、智能的方式,可以对矩阵进行元素更改、插入子块、提取子块、重排子块、扩大维数等操作.这里,重要的是冒号“:”的应用.在 MATLAB 中,冒号“:”表示“全部”.如已知 a=1 2 3 4 5 6 b=7 8 9 若键入 a(1,:)=b%将 a 的第 1 行中所有元素用 b 的元素替代 a(:,2)=0%将 a 的第 1 列中所有元素换成 0 则显示 a=7 8 9 4 5 6 a=7 0 9 4 0 6 若再键入 a(2,6)=10%第 2 行第 6 列元素等于 10 显示 a=7 0 9 0 0 0 4 0 6 0 0 10 MATLAB 已定义的矩阵的维数可以扩大,但不能缩小,除非利用 clear 命令删除该矩阵.如果输入的同名矩阵的维数小于原矩阵维数,MATLAB 认为是原矩阵修改了部分元素或子块.增加矩阵的维数时,可以只给出非零元素,MATLAB 自动将未定义元素改为 0.1.3.2 矩阵与标量的四则运算 运算包括、运算,矩阵和标量运算完成矩阵的每个元素对该标量的运算.如已知 4第 1 章 MATLAB 基础知识与编程方法第 1 章 MATLAB 基础知识与编程方法 a=1 2 3 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 4 5 6 则有 a+1=2 3 4 5 6 7 a*2=2 4 6 8 10 12 a/2=0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 1.3.3 矩阵与矩阵间的运算 矩阵 A 和 B 维数完全相同时,可以进行矩阵加减法运算.它会自动地使得 A 和 B 矩阵的相应元素相加减.如果 A 和 B 的维数不相等,则 MATLAB 将自动地给出错误信息,提示两个矩阵的维数不相等.两个矩阵 A,B 的维数相容时(A 的列数等于 B 的行数),可以进行 C=AB 的运算.MATLAB 中还定义了一种特殊的运算,即所谓的点运算.当两个矩阵维数完全相同时,可以进行点运算,两个矩阵之间的点运算是该矩阵对应元素的直接运算.例如,已知 A,B矩阵 a=1 2 3 4 b=5 6 7 8 则有 a*b=19 22 43 50 a.*b=5 12 21 32 5第 1 章 MATLAB 基础知识与编程方法第 1 章 MATLAB 基础知识与编程方法 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 可以看出,这两种乘积结果是不同的.前者是普通矩阵乘积,而后者是两个矩阵对应元素之间的乘积.在进行矩阵的点运算时,要求运算的两个矩阵的维数一致,其实一些特殊的矩阵函数,如B=sin(A)也是由点运算的形式来进行的,因为它要对矩阵的每个元素求取正弦值(bij=sin(aij).1.3.4 产生特殊矩阵的函数 MATLAB 定义了一些特殊矩阵,不必一一赋值定义.特殊矩阵定义见表 1.3.表 1.3 特殊矩阵 命令 说明 A=空矩阵 A=eye(n)n 维单位矩阵 A=ones(m,n)全部元素都为 1 的 m 行 n 列矩阵 A=rand(m,n)元素服从 0 和 1 之间均匀分布的随机矩阵 A=randn(m,n)元素服从零均值单位方差正态分布的随机矩阵 A=zeros(m,n)全部元素都为 0 的矩阵 1.3.5 矩阵的其它相关操作 MATLAB 具有矩阵大小的查询功能.查询矩阵的大小可以用m,n=size(A)命令,返回 A矩阵的行数 m 和列数 n;还可以用 n=length(A)命令,返回 A 矩阵的行数和列数中的最大值n.矩阵的转置用 A 表示.1.4 逻辑运算与控制语句 除了传统的数学运算,MATLAB 还支持关系和逻辑运算,目的是提供求解真假命题的答案.对于所有关系和逻辑表达式的输入,MTLAB 把任何非零数值当做真,把零当做假.而对于所有关系和逻辑表达式的结果为真时输出 1,假时输出 0.控制语句包括循环与条件语句.它们决定了运算过程和路径,因此被称为控制语句.循环和条件语句包含在每一种可以用于进行科学计算的计算机语言中.它们更适合人的思维,扩展了计算功能,并节省了语句,使程序看来更为简洁、清晰.1.4.1 关系和逻辑运算 MATLAB 给出的关系与操作符如表 1.4.表 1.4 关系与逻辑操作符 关系操作符 说明 逻辑操作符说明 =小于 小于等于大于 大于等于等于 不等于&|与 或 非 6第 1 章 MATLAB 基础知识与编程方法第 1 章 MATLAB 基础知识与编程方法 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 关系操作符可用来比较两个同样大小的数组、或比较一个数组与一个标量.数组和标量比较时,数组的每一个元素与标量比较,结果数组与原数组大小一样,其元素只有 0 和 1.逻辑操作符提供了一种按照逻辑“与”、“或”、“非”形成的关系表达式,并可以用于运算.例如已有数组 a,b 分别为 a=1 2 3 4 5 b=3 4 5 6 7 则 (a3)=0 0 0 1 1(a3)+b=3 4 5 7 8(a3)=1 1 1 0 0(a1)&(b6)=0 1 1 0 0 1.4.2 for 循环 for 循环语句允许按照给出的范围或固定的次数重复完成一个(或一组)运算.它从 for开始,用 end 结束,也叫做 for-end 结构.for 语句的基本格式为:for 循环变量=数组范围 命令串 end 执行 for 语句时,循环变量按照数组指定的范围逐步取值,每一步执行一次命令串,直至循环变量按照数组指定全部取值完毕.例如,运行下面的 for 循环子程序.键入 for n=1:5%循环变量取值从 1 到 5,每步按 1 递增 x(n)=n2;%运算命令 end%结束循环运算 上述程序也可写成 for(n=1:5)x(n)=n2;end 另外,for 语句可以嵌套,例如:for i=1:3 for j=5:-1:1 a(i,j)=i2+j2;end end 上述程序也可写成 for(i=1:3)for(j=5:-1:1)a(i,j)=i2+j2;end;end 7第 1 章 MATLAB 基础知识与编程方法第 1 章 MATLAB 基础知识与编程方法 1.4.3 while 循环 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 for 循环以固定的次数求一组命令的值.MATLAB 提供了另一种循环语句 while.它根据给出的条件,以不定的次数求一组命令的值.该循环语句的结构为:while 条件表达式 命令串 end 其执行方式为,若条件表达式中的条件成立,则执行命令串;如果表达式不成立,则跳出循环,向下继续执行.例如执行下面的循环语句:s=0;n=1;while n=”表示,“等于”用“=”表示,例如:for n=1:4 if n2 y=n2 end end 结果为 y=9 y=16 很明显,当 n=1,2 时,不满足条件,程序转而执行下面的循环.条件语句还有 if-else-end结构,结构形式为:if 条件表达式 1 8第 1 章 MATLAB 基础知识与编程方法第 1 章 MATLAB 基础知识与编程方法 命令串 1 elseif 条件表达式 2 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 命令串 2 else 命令串 n end 执行上述语句时,如果条件表达式 1 的条件成立,那么就执行命令串 1;如果条件 1 不成立,条件 2 成立,则执行命令串 2;,否则执行 else 后的命令串 n.MATLAB 允许多层不相交的条件语句嵌套及for和while循环语句互相嵌套.注意elseif与else if含义不同,elseif是或者条件成立,else if 是嵌套条件,意思是否则如果条件成立.另外,在执行 for 和 while 循环语句时,可以利用 if+break 语句中止该循环过程,还可以利用 if+continue 语句跳过该条件后循环.如:sum=0;for m=1:100%循环变量从 1 到 100 if sum100 m%当 sum 大于 100 时,显示 m break%中止循环 elseif m=10|m=12 continue%当 m=10 或 m=12 时,不执行该条件后的循环语句 sum=sum+m;end sum=sum+m;end sum%显示 sum 运行结果:m=17 sum=114 结果表明,当运行到第 17 个循环时,满足给定条件,程序中止运行.1.5 M 函数与 M 文件 MATLAB 除了可以进行前面讲过的数学函数、矩阵函数运算之外,还提供了 M 函数、M 函数文件和 M 文件功能,可以利用所有的已知函数编制自己的 M 函数或 M 文件,完成更为复杂的运算.实际上,MATLAB 的许多复杂函数都是由建立在 M 函数基础上的 M 文件完成的.它使得自己的需求可以任意扩展和抽象化,给 MATLAB 增加了抽象思维能力.1.5.1 M 函数 MATLAB 的 M 函数是 function 语句引导的,其基本格式如下:function y1,y2,=ff(x1,x2,)其中,ff 为函数名,xi 和 yi 分别为输入和输出变量.它们可以是标量、数组、矩阵或字符串.9第 1 章 MATLAB 基础知识与编程方法第 1 章 MATLAB 基础知识与编程方法 例如,可用 M 函数完成51022+=xp的运算.给出 M 函数 ff,内容如下:MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 function p=ff(x)n=length(x);%获得数组 x 的维数 for i=1:n pp(i)=sqrt(x(i)2+10);end p=2*pp-5;然后在工作空间定义 x=1:5;调用 ff 函数 y=ff(x),可得:y=1.6332 2.4833 3.7188 5.1890 6.8322 在 function 命令中也可以完成没有输入输出变量,简单定义为:function 文件名 它执行该文件下指定的操作.应当注意,M 函数中使用的变量,除输入和输出变量以外,所有变量都是局部变量,即在该函数返回之后,这些变量会自动在 MATLAB 的工作空间中清除掉.除了 MATLAB 提供的 M 函数,所有自己定义的 M 函数都要通过一个 M 文件来产生,M文件是指扩展名为.m的文件.M函数文件必须按照一定的规则来编写.它的基本规则和属性如下:函数名和文件名最好相同,函数调用时只认文件名,因此文件名中不能有中文字符.如上面定义的 M 函数 ff,它是一个名为 ff.m 的文件.开头应当以 function 语句开始,第 2条以后可以加入注释行(以%开始)和 MATLAB 运算语句.M 函数文件有自己的工作空间,与 MATAB 的工作空间分开.M 函数的变量都是内部变量,不会送工作空间去.M 函数与工作空间的联系只有输入、输出变量.M 函数中若有 return 命令,函数将中断运行,返回工作空间.MATLAB 在执行一次 M 函数之后,将其编为机器码,下一次运行时直接调用,运算速度很快.M 函数文件中可以调用其它一般 M 文件(或称为脚本文件).这时,脚本文件中的变量都在 M 函数文件中有效,而在 MATLAB 的工作空间中无效.M 函数文件可以重复调用自己,但应当尽量避免这种操作,因为容易形成死循环.1.5.2 M 文件 MATLAB 提供的 M 文件(也叫脚本文件)是普通的 ASC码构成的文件,只能由MATLAB 语言所支持的语句组成.它类似于 DOS 下的批处理文件,可以直接在工作空间中执行.M 文件以扩展名.m 结尾,执行时只需键入文件名,MATLAB 会自动执行该 M 文件中的各条语句.与 M 函数文件不同,它不以 function 语句开始,可以直接以任意 MATLAB 语句开始.如果要定义全局变量,则应以全局变量定义开始.在工作空间中调用的 M 文件中的所有变量都可以在工作空间中直接引用,并可以在工作空间中的其它 M 文件进行时调用.但如果要在某个 M 函数中引用,则必须定义为全局变量.M 文件可以调用 M 函数文件,一般来讲,M 文件应当在 M 函数的上层.MATLAB 的 M 文件的功能非常强大.它允许自由编制充分复杂的程序,调用各种已有 10第 1 章 MATLAB 基础知识与编程方法第 1 章 MATLAB 基础知识与编程方法 的函数、其它 M 文件等.完成复杂的数值、逻辑和符号运算,是一个非常有用的工具.有关 M 文件的操作命令,在表 1.5 中给出.MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 表 1.5 有关 M 文件的函数 命令 说明 disp(ans)echo input pause pause(n)waitforbuttonpress 显示未指定变量名的结果 控制命令窗口对脚本文件命令的回响 提示用户输入 暂停,直至用户按任意键 暂停 n 秒 暂停,直至用户按鼠标键或键盘键 MATLAB 的循环和条件语句中,由于经常包括了大量的 MATLAB 命令,一般用于 M文件中更为合适,而不常采用直接在工作空间中键入方式.下面介绍的在工作空间中键入的程序,可以直接写入 M 文件调用.一个循环程序最好写入 M 文件后再调用.一个项目中自己编写的所有 M 文件或 M 函数文件一般放在同一个目录下,并将该目录设置为当前的工作路径,如图 1-1.1.6 图形与屏幕输出 MATLAB 提供了很多图形与屏幕输出函数,这里只介绍几个本书中所用到的函数:绘图函数 plot、图形中文本输出函数 text、屏幕格式化输出函数 fprintf.MATLAB 最常用的二维绘图命令是 plot 命令.该命令将各个数据点用直线连接来绘制图形.MATLAB 的其它二维绘图命令中的绝大多数是以 plot 为基础构造的.plot 命令打开一个默认的图形窗口,它还自动将数值标尺及单位标注加到两个坐标轴上.如果已经存在一个图形窗口,plot 命令将刷新当前窗口的图形.plot 命令的调用格式:plot(x1,y1,参数 1,x2,y2,参数 2,)plot 可以用同一命令在同一坐标系中画多幅图形,x1,y1 为第一条曲线 x,y 轴的坐标值,参数 1 为第一条曲线的选项参数;x2,y2 为第二条曲线 x,y 轴的坐标值,参数 2 为第二条曲线的选项参数.具体说明如下:x,y 可以是向量或矩阵.当 x,y 均为向量时,要求向量 x 与向量 y 的长度一致,则 plot(x,y)绘制出以 x 为横坐标,y 为纵坐标的二维图形.当 x 为向量,y 为矩阵时,plot(x,y)用不同颜色的图线绘制出 y 行或列对于 x 的图形.y矩阵的行或列的选择取决于 x,y 的维数.若 y 为方阵或 y 矩阵的列向量长度为 x 向量的长度一致,则绘制出 y 矩阵的各个列向量相对于 x 的一组二维图形;若 y 矩阵的行向量长度与 x向量的长度一致,则绘制出 y 矩阵的各个行向量相对于 x 的一组二维图形.若 x 为矩阵,y 为向量时,则类似于上述规则.若 x,y 是同维的距阵时,则 plot(x,y)绘制出 y 列向量相对于 x 的列向量之间的一组二维图形.若 x 为向量时,则 plot(x)绘制出一个 x 元素排列序号之间关系的线性坐标图.若 x 为矩阵时,则 plot(x)绘制出 x 的列向量相对于行号的二维图形.参数选项为一个字符串,它决定了二维图形的颜色、线型及数据点的图标.表 1.6 分别 11第 1 章 MATLAB 基础知识与编程方法第 1 章 MATLAB 基础知识与编程方法 给出颜色、标记的控制字符和线型.表 1.6 颜色、数据点标记字符、线型控制符 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 字符 颜色 控制符 标记符控制符标记符符号 线型 b 蓝色.点 v 下三角-实线(默认)g 绿色 o 圆圈 上三角-.点划线 r 红色 x 叉号 右三角-虚线 m 紫红色*星号 p 五角星 y 黄色 s 正方形h 六角形 k 黑色 d 菱形 如:plot(x,y,r:o)命令,字符串 r:o 中,第一个字符“r”表示曲线颜色为红色;第二个字符“:”表示曲线线型采用点连线;“o”表示曲线上每一个数据点处用圆圈标出.当参数只指定数据点标记时,只按照标记字符画出孤立的数据点,不将数据点连接成线.注意:MATLAB 中的字符串都是用单引号括起来.图形中文本输出函数 text 调用格式为:text(x,y,字符串),表示在坐标(x,y)处标注说明文字.屏幕格式化输出函数 fprintf 调用格式类似于 C 语言中的 printf 函数,fprintf 函数还可用于对文件格式化输出,其调用格式也类似于 C 语言中的 fprintf 函数,这里不作详细介绍.1.7 MATLAB 编程简例 例 1 随机产生 m 行 n 列矩阵,每个元素服从 a,b 上均匀分布.打开菜单 FileNewM-file,弹出一个文本编辑窗口,在内编写以下代码:function A=f101(m,n,a,b)%随机产生 m 行 n 列矩阵,并将其数据压缩到 a,b 之间 A=rand(m,n);%随机产生 m 行 n 列矩阵,各元素服从 0,1 上均匀分布 for(i=1:m)for(j=1:n)A(i,j)=a+A(i,j)*(b-a);%A(i,j)=round(A(i,j);%取近似整数 end end 编辑完毕后,打开菜单 FileSave,按默认的方式操作.上述函数可用下面一行命令来替代.A=a+rand(m,n)*(b-a);12第 1 章 MATLAB 基础知识与编程方法第 1 章 MATLAB 基础知识与编程方法 例 2 计算数 e=nkk0!1.MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 MATLSB 软件开发 function x=f102(n)%计算数 e x=1;k=1;for(i=1:n)k=k*i;x=x+1/k;end 例 3 给出自然数 n 内所有素数.function p=f103(n)%给出自然数 n 内所有素数 p=2,3;k=2;%p 为记录素数的数组,k 为已找出的素数个数 for(i=5:2:n)for(j=2:k)if(rem(i,p(j)=0)j=0;break elseif(p(j)2i)break;end end if(j)k=k+1;p(k)=i;end end 练习 0.计算矩阵的阶梯形.1.计算矩阵的秩.2.计算矩阵的行向量组的最大线性无关组.3.计算矩阵的列向量组的最大线性无关组.4.计算方阵的行列式的值.5.计算方阵的逆矩阵.6.求齐次线性方程组的一组基础解系.7.解非齐次线性方程组.8.判断模糊关系方程 A o X=B 是否有解?若有解求其最大解.9.判断模糊关系方程 X o A=B 是否有解?若有解求其最大解.13