首页 MATLAB使用初步

MATLAB使用初步

举报
开通vip

MATLAB使用初步附录 MATLAB使用初步 附录 MATLAB使用初步 下面,我们以MATLAB6.1版本为例介绍它的一些使用方法。 一、MATLAB6.1的启动和退出 启动MATLAB6.1比较简单的方法是双击桌面上的MATLAB图标。此时,就会出现MATLAB的命令窗口(Command Window)。 要退出 MATLAB6.1可直接单击命令窗口右上角的“关闭”按钮或在窗口命令中输入quit。 二、常量和变量 如2.3、0.0023、3e+8 、pi、1+2i都是MATLAB的合法常量。其中3e+8表示3*108,1+2i是...

MATLAB使用初步
附录 MATLAB使用初步 附录 MATLAB使用初步 下面,我们以MATLAB6.1版本为例介绍它的一些使用方法。 一、MATLAB6.1的启动和退出 启动MATLAB6.1比较简单的方法是双击桌面上的MATLAB图标。此时,就会出现MATLAB的命令窗口(Command Window)。 要退出 MATLAB6.1可直接单击命令窗口右上角的“关闭”按钮或在窗口命令中输入quit。 二、常量和变量 如2.3、0.0023、3e+8 、pi、1+2i都是MATLAB的合法常量。其中3e+8 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示3*108,1+2i是复数常量。 MATLAB的变量无需事先定义,在遇到新的变量名时,MATLAB会自动建立改变量并分配存储空间。当遇到已存在的变量时,MATLAB将改变它的内容。如a=2.5定义了一个变量a并给它复值2.5,如果在输入a=4, 则变量a的值就变为4。 变量名由字母、数字、或下划线构成,并且必须以字母开头,最长为31个字符。MATLAB可以区分大小些。如MY_NAME、MY_name、my_name 分别表示不同的变量。 另外,MATLAB还提供了一些用户不能清除的固定变量: (1)​ ans: 缺省变量,以操作中最近的应答作为它的值。 (2)​ eps: 浮点相对精度。eps=2-52。 (3)​ pi: 即圆周率 。 (4)​ Inf: 表示正无穷大,当输入1/0时会产生Inf。 (5)​ Nan: 代表不定值(或称非数),它由Inf/Inf 或0/0 运算而产生。 三、矩阵的输入 MATLAB的基本数据结构是矩阵。向量、常量可看作是特殊的矩阵。MATLAB提供了多种方法输入和产生矩阵。 (1)​ 直接写出矩阵 直接输入矩阵时,整个矩阵须用[ ]括起来,用空格或逗号分隔各行,用分号或换行分隔各列。 例如:在MATLAB命令窗口中输入如下命令: >> A=[1,2,3;4,5,6;7,8,9] 按回车键后MATLAB在工作空间(内存)中建立矩阵A同时显示输入矩阵: A = 1 2 3 4 5 6 7 8 9 若在上述命令后面添上分号, 则表示只在内存中建立矩阵A,屏幕上将不再显示其结果。 又如,在MATLAB命令窗口中输入如下命令: >> x=[1,2,3,4,5] x = 1 2 3 4 5 x也可看作为一个行向量。 >> y=[1;2;3] y = 1 2 3 y也可看作为一个列向量。 (2)​ 利用冒号产生矩阵。 冒号是MATLAB中最常用的操作符之一。下面是几个利用冒号产生矩阵的例子: >> x=1:5 x = 1 2 3 4 5 >> x=1:0.5:3 x = 1 1.5 2 2.5 3 >> A=[1:3;4:6;7:9] A = 1 2 3 4 5 6 7 8 9 (3)​ 利用函数命令创建矩阵 MATLAB提供了许多生成和操作矩阵的函数,可以利用他们来创建一些特殊形式的矩阵。 (a)​  zeros: 产生一个元素全为零的矩阵,用法如下: zeros(n): 产生一个n阶元素全为零的矩阵。 zeros(m,n): 产生一个m*n阶元素全为零的矩阵。 例如:>> A1=zeros(3,4) %生成一个3*4的全零矩阵 A1 = 0 0 0 0 0 0 0 0 0 0 0 0 (b)​  ones: 产生一个元素全为1的矩阵, 用法同上。 (c)​  eye: 产生一个单位矩阵, 用法同上。 例如:>> A2=eye(3) %生成一个3阶单位阵 A2 = 1 0 0 0 1 0 0 0 1 (d)​  rand: 产生一个元素在0和1之间均匀分布的随机矩阵, 用法同上。 (e)​  randn: 产生一个零均值,单位方差正态分布的随机矩阵, 用法同上。 (f)​  diag: 产生对角矩阵,用法如下: diag(V): 其中V是一个n元向量(行向量或列向量),diag(V)是一个n阶方阵,主对角线上元素为V, 其它元素均为0。 diag(V,k): 是一个n+abs(k)阶方阵,其第k条对角线上元素为V,k>0时,在主对角线之上,k<0时,在主对角线之下。 例如:>> V=[7,-5,3]; >> A3=diag(V) A3 = 7 0 0 0 -5 0 0 0 3 >> A4=diag(V,1) A4 = 0 7 0 0 0 0 -5 0 0 0 0 3 0 0 0 0 (4)​ 利用M文件来创建矩阵 在菜单种选择“File”—〉“New”—〉“M-file”, 或在命令窗口中输入“edit”, 即可打开MATLAB的编辑窗口。在此窗口中输入如下内容: A=[1,2,3;4,5,6;7,8,9]; 然后保存到MATLAB的工作目录中,文件名为“My_matrix.m”, 在MATLAB中运行这个文件,就在MATLAB的工作空间中建立了矩阵A, 以供用户使用。 四、矩阵的下标 例如:已在MATLAB工作空间中建立了如下矩阵: A = 1 2 3 4 5 6 7 8 9 若要修改该矩阵中的个别元素时,利用下表就很方便。例如:输入下列命令 >> A(2,3)=15; >> A(2,1:2)=[5,10]; 此时,A变成: A = 1 2 3 5 10 15 7 8 9 当访问不存在的矩阵元素时,会产生出错信息,如: >> A(4,2) ??? Index exceeds matrix dimensions. 另一方面,如果用户在矩阵下标以外的元素中存储了数值,那么矩阵的行数和列数会相应自动增加,如: >> A(4,2)=19 A = 1 2 3 5 10 15 7 8 9 0 19 0 五、矩阵的基本操作 (1)​  矩阵的连接 通过连接操作符[ ],可将矩阵连接成大矩阵,例如: >> A=[1,2,3;4,5,6]; >> B=[7,8,9;10,11,12]; >> C=[A,B] C = 1 2 3 7 8 9 4 5 6 10 11 12 >> D=[A;B] D = 1 2 3 4 5 6 7 8 9 10 11 12 (2)​  矩阵行列的删除 利用空矩阵可从矩阵中删除指定行或列,例如: >> A(2,:)=[]; %表示删除A的第二行 >> A(:,2)=[]; %表示删除A的第二列 >> A(:,[1,2])=[]; %表示删除A的第一、二列 (3)​ 利用diag() 函数抽取矩阵的对角元素。若A是一个矩阵,则diag(A) 是一个列向量,其元素为A的主对角线元素。diag(A,k) 是一个列向量, 其元素为A的第k条对角线元素,当 k>0时,在主对角线之上,k<0时,在主对角线之下。 (4)​ 利用rot90() 函数旋转矩阵. rot90(A) 可将矩阵A按反时针方向旋转90, rot90(A,k) k为整数, 可将矩阵A按反时针方向旋转k*90. (5)​ 利用fliplr() 函数左右翻转矩阵. (6)​ 利用flipud() 函数上下翻转矩阵. (7)​  利用tril() 函数抽取下三角矩阵 tril(A) 产生下三角矩阵,阶数同A,非零元素于A的下三角部分相同。tril(A,k) 抽取A的第k条对角线及其下部的三角部分(k的正负含义同上)。 (8)​ 利用triu() 函数抽取上三角矩阵。tril(A) 产生上三角矩阵,阶数同A,非零元素于A的上三角部分相同。triu(A,k) 的用法同上。 例如:输入下列命令: >> A=[1,2,3;4,5,6;7,8,9]; >> B1=diag(A) B1 = 1 5 9 >> B2=diag(A,1) B2 = 2 6 >> B3=rot90(A) B3 = 3 6 9 2 5 8 1 4 7 >> B4=fliplr(A) B4 = 3 2 1 6 5 4 9 8 7 >> B5=flipud(A) B5 = 7 8 9 4 5 6 1 2 3 >> B3=tril(A) B3 = 1 0 0 4 5 0 7 8 9 (9)​ 利用冒号从大矩阵中抽取小矩阵 例如:设A是一个8阶方阵, 则 >> B=A(2:4,3:7); 产生一个3*5矩阵,元素是A的第2行到第4行,第3列到第7列的元素。 >> B=A(2:4,:); 产生一个3*8矩阵,元素是A的第2行到第4行的元素。 >> B=A(:); 表示将A的元素按列排列后方入一个列向量中(A的本身保持不变)。 六、操作符 (1)​ MATLAB的算术运算符 加法 + 除法 / 元素对元素乘法 .* 减法 -- 左除 \ 元素对元素除法 ./ 乘法 * 乘方 ^ 元素对元素左除 .\ 元素对元素乘方 .^ 其中元素对元素的运算符是对矩阵或向量中的每个元素进行操作.例如: >> A=[1,2,3;4,5,6;7,8,9] A = 1 2 3 4 5 6 7 8 9 >> A.^2 ans = 1 4 9 16 25 36 49 64 81 >> B=[1,2,3]; >> C=[2,4,6]; >> D=B./C D = 0.5000 0.5000 0.5000 >> E=B.\C E = 2 2 2 (2)​ MATLAB的关系运算符 小于 < 小于等于 <= 大于 > 大于等于 >= 等于 == 不等于 ~= 对大小相同的两个矩阵运行关系运算符时,是对相应的每一个元素进行比较。如果能满足指定关系,则返回1,否则返回0。若其中一个是标量,则关系运算符将标量与另一个矩阵中的每个元素一一比较。例如: >> A=[1,2;3,4]; >> B=[1,0;3,5]; >> A<=B ans = 1 0 1 1 >> A==B ans = 1 0 1 0 >> B>2 ans = 0 0 1​ 1 (3)​ MATLAB的逻辑运算符 与 & 非 ~ 或 | 逻辑异或 XOR 同关系运算符一样,当逻辑表达式的值为真时,返回1,否则返回0。例如: >> A=[1 0;2 3]; >> B=[1 1;2 2]; >> A & B ans = 1 0 1 1 >> A | B ans = 1 1 1 1 >> ~ A ans = 0 1 0 0 >> XOR(A,B) ans = 0 1 0 0 >> A & 3 ans = 1 0 1​ 1 七、基本数学函数 (1)​ 三角函数与反三角函数 sin(X), cos(X), tan(X), asin(X) (反正弦), acos(X), atan(X) (2)​  双曲函数与反双曲函数 sinh(X) (双曲正弦), cosh(X), tanh(X), asinh(X) (反双曲正弦), acosh(X), atanh(X) (3)​  指数函数和对数函数 exp(X) (指数函数), log(X) (以e为底的自然对数), log10(X) (以10为底的常用对数), log2(X) (以2为底的常用对数)。 (4)​ 取整和求余函数 fix(X) (取X的整数部分), floor(X) (朝负无穷大方向取整), ceil(X) (朝正无穷大方向取整),round(X) (朝与X最近的整数取整,即四舍五入), rem(X,Y) (求X除以Y的余数), mod(X,Y) (模数,即有符号数的除后余数)。 (5)​ 其它常用函数 abs(X) (取绝对值或复数模), sqrt(X) (求X的平方根), sign(X) (符号函数), 上述函数中的X可以时标量,也可以是一个矩阵。例如: >> sin(pi/3) ans = 0.8660 >> A=[0,1;3,-2]; >> exp(A) ans = 1.0000 2.7183 20.0855 0.1353 >> sign(A) ans = 0 1 1 -1 (6)​ 表达式 将变量、数值、函数用操作符连接起来就构成了表达式。例如: >> a=(1+sqrt(10))/2; >> b=sin(exp(-2.3))+eps; >> c=pi*b; 行末的分号表示不显示结果。因此,上述表达式将计算后的结果赋给左边相应的变量,但并不在屏幕上显示结果。如果要察看变量的值,只需键入相应的变量名。 八、MATLAB的符号计算 在数学, 物理和工程应用中常常会遇到符号计算的问题。此时的操作对象不是数值而是数学符号和符号表达式。例如: 符号计算就是将符号表达式按照微积分,线性代数等课程中的规则进行运算,且尽可能地给出解析表达式结果。 1993年,Math Works 公司从加拿大的 Waterloo Maple 公司购买了Maple 软件的使用权。随后,Math Works 公司以Maple 的内核作为MATLAB 符号计算的引擎,依赖Maple 已有的数据库,开发了实现符号计算的工具箱。下面,我们简述如何创建一个符号对象。 在MATLAB中, 我们可以采用sym 函数来创建符号变量、符号表达式和符号矩阵等符号对象。例如: >> a=sqrt(2) % a是一个数值变量 a = 1.4142 >> b=sym(a) % 将a 转换成一个符号变量 b = sqrt(2) >> c=sym('sin^(t)+log(t)') % 创建一个符号表达式 c = sin^(t)+log(t) >> A=sym('[a,b;c,d]') % 创建一个符号矩阵 A = [ a, b] [ c, d] 九、MATLAB的绘图功能 (1) 二维图形的绘制 函数plot是最基本,最重要的二维图形命令。下面简要介绍plot的使用方法: plot(x,y) 绘制二元数组的曲线图形 其中x为横坐标数据,y为纵坐标数据,若x, y是同规模的向量,则绘制一条曲线。若x是向量而y是矩阵,则绘制多条曲线,它们具有相同的横坐标数据。例如: >> x=0:pi/100:2*pi; %确定自变量x的变化范围 >> y=sin(x); >> plot(x,y); %绘制y=sin(x)的图形,如图1所示: >> z=cos(x); >> w=0.2*x-0.3; >> plot(x,[y;z;w]); %在同一坐标轴里,绘制三个函数的图形,如图2所示: 图1 y=sin(x) 的图形 图2 y=sin(x), z=cos(x), w=0.2*x-0.3的图形 (2) 三维图形的绘制 绘制三维曲线最常用的函数是plot3,它的一般格式为plot3(x,y,z) 例如:要绘制x=sin(t), y=cos(t), z=1.5*t , t 的三维曲线图可输入下列命令: >> t=0:pi/50:5*pi; >> plot3(sin(t),cos(t),1.5*t); >> grid on 其效果如图3所示: MATLAB除了能够绘制曲线图形外,还能够绘制网格图形和曲面图。 例如:可以利用mesh(x,y,z) 函数绘制三维网格图形,可以利用surf(x,y,z) 函数绘制曲面图。 下面利用mesh函数来绘制曲面 的三维网格图: >> x=-8:0.5:8; >> y=x; >> [x,y]=meshgrid(x,y); >> r=sqrt(x.^2+y.^2)+eps; >> z=sin(r)./r; >> mesh(x,y,z); 其效果如图4所示: 图3 三维曲线的图形 图4 曲面的三维网格图 十、MATLAB程序设计 Matlab作为一种高级计算机语言,不仅可以采用人机交互式的命令行方式进行工作,还可以像其他高级语言一样进行控制流的程序设计。下面我们将讨论MATLAB下进行程序设计的有关问题。我们将讨论脚本文件和函数文件的编写、全局和局部变量的使用、 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 控制结构、字符串计算、数值输入、程序调试等问题。 1 文件式文件和函数文件的定义 MATLAB的M文件有两类,文件式文件和函数文件 我们将原本在MATLAB环境下直接输入的语句,放在一个以.m为后缀的文件中,这一文件就称为文件式文件。有了文件式文件,可直接在MATLAB中输入文件名(不含后缀),这时MATLAB会打开这一文件式文件,并依次执行文件中的每一条语句,这与在MATLAB中直接输入语句的结果完全一致。 另一类M文件是函数文件,它的标志为文件内容的第一行为function语句。函数文件能够接受输入参数并返回输出参数。在MATLAB中,函数名必须和M文件名相同。 例:分别用命令文件和函数文件将华氏温度转化为摄氏温度。 (1) 文件式文件:输入以下内容并以文件名 f2cs.m 存盘 clear; %清除当前工作空间中的变量 f=input('Please input Fahrenheit temperature:'); c=5*(f-32)/9; fprintf('The Centigrade Temperature is %g\n', c); 在Matlab命令窗口中输入 f2cs ,即可执行该命令文件。不用输入参数,也没有输出参数,执行完后,变量 c、f 仍保留在工作空间。(可用whos查看)。 (2) 函数文件:建立函数文件 f2cf.m ,内容如下: function c=f2cf(f) c=5*(f-32)/9; 在Matlab命令窗口中输入 >> f2cf(100) 调用该函数时,既有输入参数,又有输出参数;函数调用完后,变量 c、f 没有被保留在工作空间。 2 函数工作空间 每个M文件的函数都有一块用作为工作空间的存储区域,它与MATLAB的基本工作空间不通,这块区域称为函数工作空间。每个函数都有自己的工作空间,其中保存着在函数中使用的局部变量。 在调用函数时,只有输入变量传递给函数的变量值,才能在函数中使用,它们来自于被调用函数所在的基本工作空间或函数空间。同样,函数返回的结果传递给被调用函数所在的基本空间或函数工作空间。 3 子函数 在函数文件中可以包含多个函数,其中第一个函数称为主函数,其函数名与文件名相同,它可由其他M文件或基本工作空间引用。在M函数文件中的其他函数称为子函数,它只能有这一个M函数文件中得主函数或其他子函数引用。 每个子函数也由函数定义行开始,紧跟其后的语句为函数体。各种子函数的次序任意,但主函数必须是第一个函数。 例1 我们编写一个求均值和中值的函数mmval.m,它包含了两个子函数。 用MATLAB function [avg,med]=mmval(u) % Find mean and median with internal functions n=length(u); avg=mean(u,n); med=median(u,n); function a=mean(v,n) % Calculate average a=sum(v)/n; function m=median(v,n) % Calculate median w=sort(v); if rem(n,2)==1 m=w((n+1)/2); else m=(w(n/2)+w(n/2+1))/2; end 4 程序控制结构 程序控制结构有三种:顺序结构、选择结构和循环结构;任何复杂的程序都可以由这三种基本结构构成。 1)顺序结构 按排列顺序依次执行,直到程序的最后一个语句。这是最简单的一种程序结构,一般涉及数据的输入、数据的计算或处理、数据的输出等。 数据输入的MATLAB语句为: A=input(提示信息); 其中提示信息为字符串 A=input(提示信息,'s'); 允许用户输入字符串 name=input('What''s your name?' ,'s') 数据输出的MATLAB语句为: disp(X); 其中 X 是字符串或矩阵 程序的暂停的MATLAB语句为: pause(n); 其中 n 是延迟时间,以秒为单位;也可以直接使用pause,则将暂停程序,直到用户按任一键后继续。若想强行中止程序的运行,可以使用 Ctrl+c。 2)选择结构 (a)条件语句 单分支 if expr (条件) statement (语句组) end 双分支 if expr (条件) statement1(语句组1) else statement2(语句组2) end 多分支 if expr1(条件 1) statement1(语句组 1) elseif expr2(条件 2) statement2(语句组 2) ... ... elseif exprm(条件 m) statementm(语句组 m) else statement(语句组) end 注:在同一个if 块中,可含有多个elseif 语句但 else 只能有一个。if 语句还可嵌套使用,多层嵌套可完成复杂的设计任务。 例2 输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。 程序如下: c=input('请输入一个字符','s'); if c>='A' & c<='Z' disp(char(abs(c)+abs('a')-abs('A'))); elseif c>='a'& c<='z' disp(char(abs(c)- abs('a')+abs('A'))); elseif c>='0'& c<='9' disp(abs(c)-abs('0')); else disp(c); end (b)情况切换语句 switch 语句可根据表达式的不同取值执行不同的语句,这相当于多条if 语句的嵌套使用。 switch expr(表达式) case expr1(表达式 1) statement1(语句组 1) case expr2(表达式 2) statement2(语句组 2) ... ... case exprm(表达式 m) statementm(语句组 m) otherwise statement (语句组) end 其中switch 子句后面的表达式可以是一个标量或字符串。当任意一个分支的语句执行完后,直接执行 switch 语句后面的语句。 例3 某商场对顾客所购买的商品实行打折销售, 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 如下(商品价格用price来表示): price<200 没有折扣 200≤price<500 3%折扣 500≤price<1000 5%折扣 1000≤price 10%折扣 输入所售商品的价格,求其实际销售价格。 程序如下: price=input('请输入商品价格'); switch fix(price/100) case {0,1} %价格小于200 rate=0; case {2,3,4} %价格大于等于200但小于500 rate=3/100; case {5,6,7,8,9} %价格大于等于500但小于1000 rate=5/100; otherwise %价格大于等于1000 rate=10/100; end price=price*(1-rate) %输出商品实际销售价格 3)循环结构 (a)指定次重复循环语句 for 语句可完成指定次重复的循环,这是广泛应用的语句。 for variable = expr statement(循环体语句) end 其中expr 可以是行向量,也可以是矩阵。for 语句还可以嵌套使用,从而构成多重循环。for 循环中可利用break 语句来终止for 循环。 例4 求[100,200]之间第一个能被21整除的整数。 程序如下: for n=100:200 if rem(n,21)~=0 continue end break end n (b)不定次重复循环语句 while 语句可完成不定次重复的循环,它与for 语句不同,每次循环前要判别其条件,如果条件为真或非零值,则循环,否则结束循环。而条件是一表达式,其值必定会受到循环语句的影响。 while expr (条件) statement(循环体语句) end 例5 求出一个值n,使其n!最大但小于1050。 程序如下: r=1;k=1; while r
本文档为【MATLAB使用初步】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_168936
暂无简介~
格式:doc
大小:155KB
软件:Word
页数:14
分类:理学
上传时间:2011-06-12
浏览量:36