实验1Matlab基本操作M文件和流程控制语句+答案

合集下载

实验三_M_文件及_MATLAB_程序设计与调试

实验三_M_文件及_MATLAB_程序设计与调试

实验三M 文件及MATLAB 程序设计与调试一、实验目的全面掌握在MA TLAB 下进行程序设计的有关问题,具体涉及到M 脚本文件和M 函数文件的编写、全局和局部变量的使用、流程控制结构、提高程序执行效率的设计技术、程序调试等问题。

二、实验内容1、关于M 脚本文件和M 函数文件MATLAB 的M 文件有两类:脚本文件和函数文件。

(1)脚本文件——将原本要在MATLAB 的指令窗口中直接输入的语句,放在一个以.m 为后缀的,称为脚本文件中。

有了脚本文件,可直接在MATLAB 中输入脚本文件名(不含后缀)。

MATLAB 会打开这一脚本文件,并依次执行脚本文件中的每一条语句,这与在MATLAB 中直接输入语句的结果完全一致。

(2)函数文件——它的第一行必须是函数定义行。

M 函数文件由5 部分构成:◆函数定义行◆H1 行◆函数帮助文本◆函数体◆注释注意:在函数文件中,除了函数定义行之外,其它部分都是可以省略的。

但作为一个函数,为了提高函数的可用性,应加上H1 行和函数帮助文本,为了提高函数的可读性,应加上适当的注释。

例如:function y = mean(x)% MEAN Average or mean value.% For vectors, MEAN(X) is the mean value of the elements in X.% For matrices, MEAN(X) is a row vector containing the mean value of each column.[m,n]=size(x);if m==1% Determine whether x is a vectorm=n;endy = sum(x)/m;①函数定义行:function y = mean(x)function 为函数定义的关键字,mean 为函数名,y 为输出变量,x 为输入变量当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。

MATLAB实验指导书(附答案)

MATLAB实验指导书(附答案)

MATLAB基础实验指导书漳州师范学院物电系2010年10月目录实验一MATLAB环境的熟悉与基本运算 (2)实验二MATLAB数值运算 (8)实验三MATLAB语言的程序设计 (12)实验四MATLAB的图形绘制 (16)实验五采用SIMULINK的系统仿真 (20)实验六MATLAB在电路中的应用 (25)实验七MATLAB在信号与系统中的应用 (27)实验八MATLAB在控制理论中的应用 (29)实验一 MATLAB环境的熟悉与基本运算一、实验目的:1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算二、实验基本知识:1.熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器文件和搜索路径浏览器。

2.掌握MATLAB常用命令3.MATLAB变量与运算符变量命名规则如下:(1)变量名可以由英语字母、数字和下划线组成(2)变量名应以英文字母开头(3)长度不大于31个(4)区分大小写MATLAB中设置了一些特殊的变量与常量,列于下表。

MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符表2 MATLAB算术运算符表3 MATLAB关系运算符表4 MATLAB逻辑运算符表5 MATLAB特殊运算4.MATLAB的一维、二维数组的寻访表6 子数组访问与赋值常用的相关指令格式5.MATLAB的基本运算表7 两种运算指令形式和实质内涵的异同表6.MATLAB的常用函数表8 标准数组生成函数表9 数组操作函数三、实验内容1、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye(其它不会用的指令,依照此方法类推)2、学习使用clc、clear,观察command window、command history和workspace等窗口的变化结果。

3、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、exerc2、exerc3……),学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。

(完整word版)含答案《MATLAB实用教程》

(完整word版)含答案《MATLAB实用教程》

第二章 MATLAB 语言及应用实验项目实验一 MATLAB 数值计算三、实验内容与步骤1.创建矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321a(1(2)用(3)用(42.矩阵的运算(1)利用矩阵除法解线性方程组。

⎪⎪⎩⎪⎪⎨⎧=+++=-+-=+++=+-12224732258232432143214321421x x x x x x x x x x x x x x x 将方程表示为AX=B ,计算X=A\B 。

(2)利用矩阵的基本运算求解矩阵方程。

已知矩阵A 和B 满足关系式A -1BA=6A+BA ,计算矩阵B 。

其中⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=7/10004/10003/1A ,Ps: format rata=[1/3 0 0;0 1/4 0;0 0 1/7];b=inv(a)*inv(inv(a)-eye(3))*6*a(3)计算矩阵的特征值和特征向量。

已知矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=1104152021X ,计算其特征值和特征向量。

(4)Page:322利用数学函数进行矩阵运算。

已知传递函数G(s)=1/(2s+1),计算幅频特性Lw=-20lg(1)2(2w )和相频特性Fw=-arctan(2w),w 的范围为[0.01,10],按对数均匀分布。

3.多项式的运算(1)多项式的运算。

已知表达式G(x)=(x-4)(x+5)(x 2-6x+9),展开多项式形式,并计算当x 在[0,20]内变化时G(x)的值,计算出G(x)=0的根。

Page 324(2)多项式的拟合与插值。

将多项式G(x)=x 4-5x 3-17x 2+129x-180,当x 在[0,20]多项式的值上下加上随机数的偏差构成y1,对y1进行拟合。

对G(x)和y1分别进行插值,计算在5.5处的值。

Page 325 四、思考练习题1.使用logspace 函数创建0~4π的行向量,有20个元素,查看其元素分布情况。

Ps: logspace(log10(0),log10(4*pi),20) (2) sort(c,2) %顺序排列 3.1多项式1)f(x)=2x 2+3x+5x+8用向量表示该多项式,并计算f(10)值. 2)根据多项式的根[-0.5 -3+4i -3-4i]创建多项式。

MATLAB程序流程控制_习题答案

MATLAB程序流程控制_习题答案

第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。

A A.函数文件可以在命令行窗口直接运行B.去掉函数文件第一行的定义行可转变成脚本文件C.脚本文件可以调用函数文件D.函数文件中的第一行必须以function开始2.下列程序的输出结果是()。

Dy=10;if y==10y=20;elseif y>0y=30enddisp(y)A.1 B.30 C.10 D.20 3.有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是()。

CA.3 B.4 C.5 D.10 4.设有程序段k=10;while kk=k-1end则下面描述中正确的是()。

AA.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.有以下程序段:x=reshape(1:12,3,4);m=0;n=0;for k=1:4if x(:,k)<=6m=m+1;elsen=n+1;endend则m和n的值分别是()。

CA.6 6 B.2 1 C.2 2 D.1 26.调用函数时,如果函数文件名与函数名不一致,则使用()。

A A.函数文件名 B.函数名C.函数文件名或函数名均可 D.@函数名7.如果有函数声明行为“function [x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是()。

BA.x=f1(a,b,c) B.[x,y,z,w]=f1(a,b,c)C.[x,b,z]=f1(a,y,c) D.[a,b]=f1(x,y,z)8.执行语句“fn=@(x) 10*x;”,则 fn是()。

AA.匿名函数 B.函数句柄 C.字符串 D.普通函数9.执行下列语句后,变量A的值是()。

D>> f=@(x,y) log(exp(x+y));>> A=f(22,3);A.22,3 B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。

MATLAB程序设计M文件程序控制结构程序调试程序举例

MATLAB程序设计M文件程序控制结构程序调试程序举例
x=input('Please input x=:');
y=input('Please input y=:');
[rho,the]=tran(x,y);
rho
the MATLAB中,函数能够嵌套调用,即一种函数能够调用别旳函数, 甚至调用它本身。一种函数调用它本身称为函数旳递归调用。
例6 分别建立命令文件和函数文件,将华氏温度f转换为 摄氏温度c。
21.1111
x=
21.1111
(5). 函数文件旳其他有关概念
①局部变量和全局变量:
局部变量只存在于单个函数工作空间,全局变量 经过global定义,可穿行于不同函数工作空间, 涉及基本工作空间workspace。
函数文件旳内部变量是局部旳,与其他函数 及MATLAB内存相互隔离; 而假如在若干函数中把某一变量定义为全局 变量,那么这些函数将公用这个变量,全局 变量旳作用域是整个MATLAB旳工作区,即 全程有效,全部函数都能够对其存取和修改。
if (nargin == 1) tol = max(size(x)) * max(s) * eps;
程序部分
end
r = sum(s > tol);
(2)命令m文件建立及其运营
建立 涉及下列环节: 进入m文件编辑器 输入程序 定义文件名,保存程序
命令M文件旳运营方式: 直接在命令窗口输入该文件旳文件名 在m文件编辑器中打开该文件后点击工具条中
② M文件模式
将matlab语句构成旳程序存储成以m为扩展名 旳文件,然后再执行该程序文件,这种工作模式 称为程序文件模式。
程序文件不能在命令窗口下建立,因为命令窗口 只允许一次执行一行上旳一种或几种语句。

实验1 Matlab基本操作、M文件和流程控制语句

实验1 Matlab基本操作、M文件和流程控制语句

实验1 Matlab 基本操作、M 文件和流程控制语句一、实验目的1、熟悉Matlab 的开发环境、熟悉Matlab 中的运算符。

2、掌握建立矩阵的方法,掌握相关命令操作。

3、理解命令M 文件和函数M 文件的区别。

掌握M 文件的创建和运行。

4、掌握流程控制语句的使用,掌握程序调试的基本方法。

二、实验内容1、计算以下表达式的值,将结果按不同格式输出。

掌握format 命令的使用方法。

(1)26)3sin(3.13π=y (2))1ln(212x x y ++=,其中⎥⎦⎤⎢⎣⎡-+=545.0212i x (3)23.0ln )3.0sin(23.03.0x x e e y x x +++-=-,其中0.3,9.2,8.2,,8.2,9.2,0.3 ---=x 2、已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=72330213176538773443412B A , 求下列表达式的值:(1) A+6*B 和A-B+I(2) A*B 和A.*B(3) A^3和A.^3(4) A/B 和B\A(5) [A,B]和[A([1,3],:);B^2]3、已知)20()30()40(f f f y +=, (1)当)5ln(10)(2++=n n n f 时,求y 的值。

(2)当)1(*4*33*22*1)(+++++=n n n f 时,求y 的值。

4、请分别用if 和switch 语句实现。

输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。

其中90分~100分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。

5、已知⎪⎪⎩⎪⎪⎨⎧>+-=======---3,23,12,01,1321321n f f f f n f n f n f n n n n 求1001~f f 中:(1) 这100个数中的最大值,最小值,这100个数的总和。

《分析软件工具(MATLAB)》实验答案

《分析软件工具(MATLAB)》实验答案

实验一(2学时):MATLAB软件集成环境使用,基本操作命令练习题1 利用基本矩阵产生3x3和15x8的单位阵,全1阵,全0阵,均匀分布的随机阵([-1,1]之间),正态分布随机阵(方差4,均值1)。

eye(3)ones(3), ones(15,8)zeros(3), zeros(15,8)-1+2*rand(3), -1+2*rand(15,8)1+2*randn(3), 1+2*randn(15,8)题2 有一矩阵a,找出矩阵中其值大于1的元素,并将他们重新排列成列向量b。

a=[1 2 1;3 1 1;4 -2 7]b=a(find(a>1))基本要求:熟悉MATLAB环境和常用命令,掌握MATLAB矩阵操作实验二(2学时):MATLAB软件绘图功能题1 试写一函数 regPolygon(n),其功能为画出一个圆心在 (0, 0)、半径为 1 的圆,并在圆内画出一个内接正 n 边形,其中一顶点位于 (0, 1)。

function regPolygon(n)t=0:pi/20:2*pi;x=sin(t);y=cos(t);plot(x,y);hold on;t=linspace(0,2*pi,n+1);x=sin(t);y=cos(t);plot(x,y);axis square;题2 请用 surf 指令来画出下列函数的曲面图:z = x*exp(-x2-y2),其中 x 在 [-2, 2] 间共等切分为 21 点,y 在 [-1, 1] 间共等切分为 21 点,所以此曲面共有 21*21=441 个点。

a. 请用预设的颜色对应表(Colormap)来画出此曲面。

b. 请以曲面的斜率来设定曲面的颜色。

c. 请以曲面的曲率来设定曲面的颜色。

基本要求:能够利用MATLAB函数绘制二维图形x=linspace(-2,2,21);y=linspace(-1,1,21);[X,Y]=meshgrid(x,y);Z=X.*exp(-X.*X-Y.*Y)subplot(2,2,1)surf(X,Y,Z)axis tightcolormap(hot)subplot(2,2,2)surf(X,Y,Z,gradient(Z))axis tightcolormap(hot)subplot(2,2,3)surf(X,Y,Z,del2(Z))axis tightcolormap(hot)实验三(2学时):MATLAB程序设计题1 写一个 MATLAB 小程序 findN01.m,求出最小的 n 值,使得 n! > realmax。

MATLAB蓝色答案

MATLAB蓝色答案

实验一 MATLAB 软件使用初步一、 实验目的∙ 学习MATLAB 软件的安装过程,熟悉MA TLAB 软件界面的组成及基本使用方法。

∙ 理解数组(Array )的分类,及标量(scalar )、矢量(vector )和矩阵(Matrix )的区别,熟悉数组与矩阵的构造方法,掌握数组与矩阵的基本运算法则。

二、 实验要求1、 掌握MATLAB 软件的启动与退出的方法。

2、 掌握MATLAB 软件的桌面环境。

3、 掌握MATLAB 软件的基本使用方法。

4、 掌握M 文件编辑器的使用。

5、 学会使用MATLAB 的帮助系统。

6、 掌握标量、矢量和矩阵的构造方法。

7、 掌握数组的四则运算。

8、 掌握矩阵的四则运算。

9、 掌握基本的数据输入和输出函数。

三、 实验内容图1 MATLAB 桌面环境1.浏览各个菜单项的内容,试着改变各个窗口的字体与字号。

2.熟悉matlab 中的特殊变量:i 、j 、pi 、ans 等等。

3.在实验报告中回答下面哪些赋值语句是正确的,如果不正确给出理由。

a=1 对a20=1.2; 对,只是无answer ,它是一条语句。

年薪=100000 错,定义变量不对。

输入字符不是 MATLAB 语句或表达式中的有效字符。

_fee=20.0 错,变量不能有下划线。

输入字符不是 MATLAB 语句或表达式中的有效字符。

coordinate.x=1 对赋值结尾为“;” 则不显示结果。

一行不够时,可用“…”换行4.已知1u =,3v =,用MA TLAB 分别执行下列语句。

并在实验报告中记录语句和结果。

a. 43u vb. ()222v u v -+ c. 333v v u - d.243v π >>u=1>>v=3a. 4*u/(3*v)b.5. 运行以下命令并将运行结果与工作空间浏览器中的状态进行比较。

>> a=sin(pi); b=[1, 2]; c=[1; 2]; >> who >> whos 在实验报告中回答:如下运行结果中,Size 下的1x1、1x2、2x1的含义>> whosName Size Bytes Classa 1x1 8 double arrayb 1x2 16 double arrayc 2x1 16 double array6.通过工作目录浏览器(Current Directory Browser )或者“File”菜单中相应菜单项改变当前工作 目录。

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

实验1 Matlab基本操作、M文件和流程控制语句-答案1、计算以下表达式的值,将结果按不同格式输出。

掌握format命令的使用方法。

(1)(2),其中(3),其中以(1)为例,其余类似。

(1)>> y=1.3^3*sin(pi/3)*sqrt(26)y =9.7017>> format long>> y=1.3^3*sin(pi/3)*sqrt(26)y =9.70168931166114>> format short e>> y=1.3^3*sin(pi/3)*sqrt(26)y =9.7017e+000>> format bank>> y=1.3^3*sin(pi/3)*sqrt(26)y =9.70>> format rat>> y=1.3^3*sin(pi/3)*sqrt(26)y =2862/295(2)>> format short>> x=[2 1+2*i;-0.45 5]x =2.0000 1.0000 + 2.0000i-0.4500 5.0000>> y=(1/2)*log(x+sqrt(1+x^2))y =0.7114 - 0.0253i 0.8968 + 0.3658i0.2139 + 0.9343i 1.1541 - 0.0044i(3)>> format short>> x=-3:0.1:3;>> y=((exp(0.3*x)-exp(-0.3*x))/2).*sin(x+0.3)+log((0.3+x)/2)2、已知:求下列表达式的值:A+6*B和A-B+IA*B和A.*BA^3和A.^3A/B和B\A[A,B]和[A([1,3],:);B^2]>> A=[12 34 -4;34 7 87;3 65 7];>> B=[1 3 -1;2 0 3;3 -2 7];>> A+6*Bans =18 52 -1046 7 10521 53 49>> A-B+eye(3)ans =12 31 -332 8 840 67 1>> A*Bans =68 44 62309 -72 596154 -5 241>> A.*Bans =12 102 468 0 2619 -130 49>> A^3ans =37226 233824 48604247370 149188 60076678688 454142 118820 >> A.^3ans =1728 39304 -6439304 343 65850327 274625 343 >> A/Bans =16.4000 -13.6000 7.600035.8000 -76.2000 50.200067.0000 -134.0000 68.0000>> B\Aans =109.4000 -131.2000 322.8000-53.0000 85.0000 -171.0000-61.6000 89.8000 -186.2000>> [A,B]ans =12 34 -4 1 3 -134 7 87 2 0 33 65 7 3 -2 7>> [A([1,3],:);B^2]ans =12 34 -43 65 74 5 111 0 1920 -5 403、已知,(1)当时,求y的值。

(2)当时,求y的值。

(1)先创建文件函数:f.mfunction f=f(n)f=n+10*log(n^2+5);然后在主窗口调用:>>y= f(40)/(f(30)+f(20))y =0.6390(2)先创建文件函数:f.mfunction f=f(n)f=0;for i=1:nf=f+i*(i+1);end或用while语句创建函数:function f=f(n)f=0;while n>=1f=f+n*(n+1);n=n-1;end然后在主窗口调用:>> y=f(40)/(f(30)+f(20))y =1.76624、请分别用if和switch语句实现。

输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。

其中90分~100分为A,80分~89分为B,70分~79分为C,60分~69分为D,60分以下为E。

n=input('please enter a scores:');if n>=90disp('A')elseif n>=80disp('B')elseif n>=70disp('C')elseif n>=60disp('D')elsedisp('E')end用switch语句:n=input('please enter a scores:');m=fix(n/10)switch mcase 10disp('A')case 9disp('A')case 8disp('B')case 7disp('C')case 6disp('D')otherwisedisp('E')end5、已知求中:这20个数中的最大值,最小值,这20个数的总和。

统计正数、零、负数的个数。

显示的值。

f1=1;f2=0;f3=1;max=1;min=0;n=4;positive=2;negative=0;zero=1;sum=2;s=[1 0 1];while n<=20f=f3-2*f2+f1;sum=sum+f;if f>maxmax=f;elseif f<minmin=f;endif f>0positive=positive+1;elseif f<0negative=negative+1;elsezero=zero+1;ends=[s f];f1=f2;f2=f3;f3=f;n=n+1;endfprintf('the max value=%f\nthe min value=%f\n',max,min); fprintf('the sum=%f\n',sum);fprintf('the number of positive:%f\n',positive);fprintf('the number of negative:%f\n',negative);fprintf('the number of zero:%f\n',zero);f=s或:f1=1;f2=0;f3=1;max=1;min=0;n=4;positive=2;negative=0;zero=1;sum=2;g(1)=1;g(2)=0;g(3)=1;while n<=20f=f3-2*f2+f1;g(n)=fsum=sum+f;if f>maxmax=f;elseif f<minmin=f;endif f>0positive=positive+1;elseif f<0negative=negative+1;elsezero=zero+1;endf1=f2;f2=f3;f3=f;n=n+1;endfprintf('the max value=%f\nthe min value=%f\n',max,min);fprintf('the sum=%f\n',sum);fprintf('the number of positive:%f\n',positive);fprintf('the number of negative:%f\n',negative);fprintf('the number of zero:%f\n',zero);f=g结果:the max value=65.000000the min value=-115.000000the sum=-135.000000the number of positive:9.000000the number of negative:9.000000the number of zero:2.000000f =Columns 1 through 101 0 12 0 -3 -1 54 -7Columns 11 through 20-10 8 21 -5 -39 -8 65 42 -96 -1156、编写一个函数文件,输入3个参数,前2个为矩阵,第3个是数字0或1,如果是0,则计算矩阵乘积A*B,否则计算A.*B。

function C=f(A,B)A=input('Enter matrix A:');B=input('Enter matrix B:');k=input('Enter 0 or 1 please:');C=zeros(size(A,1),size(A,2));%此行语句可略掉if k==0if size(A,2)==size(B,1)C=A*B;elsedisp('A与B无法相乘')endelseif size(A)==size(B)for i=1:size(A,1) %返回A的行数for j=1:size(A,2) %返回A的列数C(i,j)=A(i,j)*B(i,j);endendelsedisp('只有同型矩阵才能点乘') end。

相关文档
最新文档