第4章matlab程序流程控制_习题答案
MATLAB程序设计与应用习题
X =
1 1 1 0
2.11设a=[0 100],求~a的值?(非运算)
答:>> clear
>> a=[0 1 0 0]
a =
0 1 0 0
>> x=not(a)
x =
1 0 1 1
2.12设a=[0 120],b=[21 0 0],求axor b的值?
答:>> clear
答:>> clear
>> a=[0 2 1 0]
a =
0 2 1 0
>> b=[2 1 0 0]
b =
2 1 0 0
>> x=and(a,b)
x =
0 1 0 0
2.10设a=[0 120],b=[120 0],求a|b的值?(或运算)
答:
>> clear
>> a=[0 1 2 0];b=[1 2 0 0];
答:quit:关闭MATLAB。
clear:清除内存中的变量。
cla:清除坐标。
clf:清除图形。
clc:清除MATLAB命令窗口的所有显示信息。
hold:控制当前图形窗口是否被刷新。
1.9学会打开并保存程序编辑窗口,并在M文档中编写1.4的运算程序并进行运算。
答:要打开程序编辑窗口,我们可以在Command Window窗口中,单击工具栏中最左端显示为一张白纸的工具按钮。这样就打开了一个空白的程序编辑窗口,如图1-6所示。
3.6已知
将a(2,3)=-1替换为a(2,3)=0。
答:
3.7已知
将a的第二行元素全部替换为0,然后将第二列元素全部替换为1。
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的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。
第4章 MATLAB程序流程控制
第4章 MATLAB程序流程控制
2.switch语句 switch语句根据表达式的取值不同,分别执行不 同的语句,其语句格式为:
第4章 MATLAB程序流程控制
(3) 多分支if语句: if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组n end
第4章 MATLAB程序流程控制
第4章 MATLAB程序流程控制
例4-4 输入一个字符,若为大写字母,则输出其对应 的小写字母;若为小写字母,则输出其对应的大写 字母;若为数字字符则输出其对应的数值,若为其 他字符则原样输出。
age is 17>> >> fprintf('age is %d\n',17); age is 17
第4章 MATLAB程序流程控制
例4-2 求一元二次方程ax2 +bx+c=0的根。 程序如下: a=input('a=?'); b=input('b=?'); c=input('c=?'); delta=b*b-4*a*c; x=[(-b+sqrt(delta))/(2*a),(-b-sqrt(delta))/(2*a)]; disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);
M文件的扩展名为.mFra bibliotek第4章 MATLAB程序流程控制
1.建立新的M文件 为建立新的M文件,启动MATLAB编辑器有3种方法。 ① 在MATLAB主窗口选择“主页”选项卡,在“文件” 命令组中单击“新建脚本”命令按钮。 ② 在MATLAB命令行窗口输入命令: edit 文件名 启动MATLAB编辑器后,输入M文件的内容并存盘。 ③ 在命令历史窗口选中一些命令(按住Ctrl可同时选 择多条命令),然后从右键快捷菜单中选择“创建 脚本”命令,将会启动MATLAB编辑器,并在编辑 区中加入所选中的命令。
MATLAB流程控制脚本文件编制参考答案
1.判断三角形clca=input('');b=input('');c=input('');if a+b>c&&b+c>a&&a+c>aswitch 1case a==b==cdisp(1)case a==b|b==c|a==cdisp(2)otherwise disp(3)endelsedisp(0)end2、费波纳切数列:1、1、2、3、5、8、13……,其递推公式为:a(1)=a(2)=1,a(n)=a(n-1)+a(n-2)(n>=3)。
编程实现求n项的费波纳切数列。
要求:用M语言脚本文件实现;对输入的错误数据格式(如字符串、小数等)能够给出错误提示。
(函数)function y=feibonaqie(n)%求费波纳切数列a(1)=1;a(2)=1;%n=input('请输入项数n:');if(n==1)a(n)=1;elseif(n==2)a(n)=1;elseif(n>=3)i=3;while(i<=n)a(i)=a(i-1)+a(i-2);i=i+1;endendy=a(n);(脚本)clc;a(1)=1;n=input('请输入项数n :');if(n==1)a(n)=1;elseif(n==2)a(n)=1;elseif(n>=3)i=3;while(i<=n)a(i)=a(i-1)+a(i-2);i=i+1;endendsprintf('a(%u)=%u',n,a(n))9X9乘法表for i=1:9;A=[];for j=1:i;A=[A,sprintf('%d ×%d=%2d ',j,i,i*j)];enddisp(A)end3、古代的数学家祖冲之利用正多边形逼近的割圆法计算了常数pi 的值,请编程实现,要求精确到小数点后的第10位。
第4章 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.203.有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是()。
CA.3 B.4 C.5 D.104.设有程序段k=10;whilekk=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,3B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。
第4章 MATLAB程序流程控制_习题答案
第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。
AA.函数文件可以在命令行窗口直接运行B.去掉函数文件第一行的定义行可转变成脚本文件C.脚本文件可以调用函数文件D.函数文件中的第一行必须以function开始2.下列程序的输出结果是()。
Dy=10;if y==10y=20;elseif y>0y=30enddisp(y)A.1 B.30 C.10 D.203.有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是()。
CA.3 B.4 C.5 D.104.设有程序段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,3B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。
matlab第四章课后答案
%Exerc ise 1(1)r oots([1 11])%Exer cise1(2)roots([3 0 -4 0 2 -1])%Exerc ise 1(3)p=zero s(1,24);p([1 17 1822])=[5 -6 8 -5];ro ots(p)%E xerci se 1(4)p1=[2 3];p2=conv(p1,p1);p3=co nv(p1, p2);p3(end)=p3(en d)-4; %原p3最后一个分量-4r oots(p3)%Exer cise2fun=inli ne('x*log(sqrt(x^2-1)+x)-sqrt(x^2-1)-0.5*x');fzer o(fun,2)%Exer cise3fun=inli ne('x^4-2^x');fplot(fun,[-2 2]);gr id on;fze ro(fu n,-1),fzer o(fun,1),f minbn d(fun,0.5,1.5)%Exe rcise 4fu n=inl ine('x*sin(1/x)','x');fp lot(f un, [-0.10.1]);x=z eros(1,10);fori=1:10, x(i)=fz ero(f un,(i-0.5)*0.01);end;x=[x,-x]%Ex ercis e 5f un=in line('[9*x(1)^2+36*x(2)^2+4*x(3)^2-36;x(1)^2-2*x(2)^2-20*x(3);16*x(1)-x(1)^3-2*x(2)^2-16*x(3)^2]','x');[a,b,c]=fso lve(f un,[0 0 0])%E xerci se 6fun=@(x)[x(1)-0.7*si n(x(1))-0.2*cos(x(2)),x(2)-0.7*cos(x(1))+0.2*sin(x(2))]; [a,b,c]=fsolv e(fun,[0.5 0.5])%E xerci se 7clear; clo se; t=0:p i/100:2*pi;x1=2+sqr t(5)*cos(t); y1=3-2*x1+sq rt(5)*sin(t);x2=3+s qrt(2)*cos(t);y2=6*sin(t);pl ot(x1,y1,x2,y2); gri d on; %作图发现4个解的大致位置,然后分别求解y1=fsolv e('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[1.5,2])y2=fsolv e('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[1.8,-2])y3=fsol ve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[3.5,-5])y4=fso lve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[4,-4])%Exerc ise 8(1)c lear;fun=inlin e('x.^2.*(x.^2-x-2)');fp lot(f un,[-2 2]);grid on;%作图观察x(1)=-2;x(2)=fminb nd(fu n,-1,-0.5);x(4)=fmi nbnd(fun,1,2);fun2=inlin e('-x.^2.*(x.^2-x-2)');x(3)=f minbn d(fun2,-0.5,0.5);x(5)=2feval(fun,x)%答案: 以上x(2)(4)是局部极小,x(1)(3)(5)是局部极大,从最后一句知道x(1)全局最大, x(4)最小。
MATLAB原理及应用实验报告第四章答案
《MATLAB 原理及应用》实验报告三.课后练习题答案1.为 ⎪⎩⎪⎨⎧<-=>+=01001x x x xx x y 编写赋值程序。
程序如下:①建立如下的M 文件:x=input('x=');%让用户通过键盘输入数值、字符串或表达式if x>0y=x+1;elseif x==0y=x;else x<0y=x-1;e nd程序执行结果如下>> kh1 %在当前工作目录下,文件名为“kh.1.m ” x=1>> yy =22.使用for ... end循环的array向量编程求出1+3+5...+100 的值程序如下:sum=0;>> for k=1:2:100sum=sum+k;end>> sumsum =25003.计算1+3+5...+100 的值,当和大于1000时终止计算。
程序如下:sum=0;for m=1:2:100; %建立1 3 5….100的向量if sum<=1000 %如果sum小于1000则可以继续加sum=sum+m; %累加elsebreak; %若sum的结果不符合条件就跳出整个循环endend结果为:sum =1024k =653.1计算从1开始多少个自然数之和超过100。
程序如下:>> sum=0;n=0;>> while sum<=100n=n+1;sum=sum+n;end结果为:n =14sum =1054.求1!+2!+3!+……+8!的值程序如下:n=1;sum=1;for m=2:8; %循环7次使得得到各次阶乘n=n*m;sum=sum+n; %累加end结果为:sum =462335.写程序,判断一年是否为闰年,符合下面两条件之一:(1990~2014)A、能被4整除,不能被100整除B、能被400整除程序如下count=0;for y=1990:2014;if((rem(y,4)==0&rem(y,100)~=0)|(rem(y,4)==0&rem(y,400)~=0));count=count+1;endend结果为:count =5。
matlab教程习题及答案
第1章MATLAB概论1.1与其他计算机语言相比较,MA TLAB语言突出的特点是什么?MA TLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。
1.2 MA TLAB系统由那些部分组成?MA TLAB系统主要由开发环境、MA TLAB数学函数库、MA TLAB语言、图形功能和应用程序接口五个部分组成。
1.3 安装MA TLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?在安装MA TLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MA TLAB选项)必须安装。
第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。
1.4 MA TLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?在MA TLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。
1.5 如何启动M文件编辑/调试器?在操作桌面上选择‚建立新文件‛或‚打开文件‛操作时,M文件编辑/调试器将被启动。
在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。
1.6 存储在工作空间中的数组能编辑吗?如何操作?存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。
1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途?命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。
MATLAB 课后部分答案
P77 第2章1、>> x=2;>> y=power(x,3)+(x-0.98).^2./(x+1.35).^3-5*(x+1./x)>> x=4;>> y=power(x,3)+(x-0.98).^2./(x+1.35).^3-5*(x+1./x)7、>> mat=rand(4,5);>> m=1;>> for i=1:2for j=1:5if mat(i,j)>0.3b(m)=mat(i,j);m=m+1;endendend>> b8、>> V=inv(A)>> A=rand(5,5);10、>> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8];B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7]; >> C=A*B??? Error using ==> mtimesInner matrix dimensions must agree.>> C=A.*BC =5 16 24 -26-18 -12 -15 72-2 -21 108 -5611、>> x=linspace(0,2*pi,125);>> y=cos((x).*(0.5+3*sin(x)./(1+x.^2)));>> plot(x,y)13、>> x=-2:0.1:2;y=-2:0.1:2;>> [X,Y]=meshgrid(x,y);>> Z=X.^2.*exp(-X.^2-Y.^2);>> mesh(Z)建立一个M函数文件mycos.m,程序如下:function y=mycos(x)clear allx=input('请输入x的值')y=1./((x-2).^2+0.1)+1./((x-3).^3+0.01)在命令窗口输入:mycosP123 第3章1、>> x=[446 714 950 1422 1634];y=[7.04 4.28 3.40 2.54 2.13];>> xi=500:500:1500;>> yi=interp1(x,y,xi,'linear')4、>> p=[3 4 7 2 9 12];>> roots(p)8、>> a=[2 4 9;4 2 4;9 4 18];>> [V,D]=eig(a) %V的列向量是相应的特征向量,对角阵D的对角元素为a的特征值10、>> p1=[-1 4 0];p2=[-1 -4 0];>> A=polyder(p1);B=polyder(p2);>> A1=roots(A);B1=roots(B);>> y=4*A1-4*B1-A1.^2-B1.^213、>> syms x y>> Ex=int(int(x.*12.*y.^2,y,0,x),x,0,1)>> Ey=int(int(y.*12.*y.^2,x,y,1),y,0,1)>> Exy=Ex.*Ey14、>> A=rand(4,4);>> [L,U]=lu(A)>> [Q,R]=qr(A)P183 第4章1、>> n=-2*pi:0.01:2*pi;>> N=12;x=cos(n*pi./6);>> X=fft(x,N)>> nx=((n>=0)&(n<=11)); hx=((n>=0)&(n<=5)); >> xn=0.8*nx;hn=hx;>> y=conv(xn,hn)4、>> n=0:11;h=0:5;>> nx=((n>=0)&(n<=11)); hx=((n>=0)&(n<=5)); >> xn=0.8*nx;hn=hx;>> M=length(xn);N=length(hn);>> L=pow2(nextpow2(M+N-1));>> Xk=fft(xn,L);Hk=fft(hn,L);>> Yk=Xk.*Hk;>> yn=ifft(Yk,L)5、>> num=[2 3 0];den=[1 0.4 1];>> [z,p,k]=tf2zp(num,den)6、>> num=[4 15.6 6 2.4 -6.4];den=[3 2.4 6.3 -11.4 6]; >> [z,p,k]=tf2zp(num,den)>> zplane(z,p)7、>> num=[18 0 0 0];den=[18 3 -4 -1];>> [r,p,k]=residuez(num,den)9、建立一个M函数文件,程序如下:clear allN=10;[z,p,k]=buttap(N);[A,B,C,D]=zp2ss(z,p,k);wc1=100;wc2=200;[At,Bt,Ct,Dt]=lp2bp(A,B,C,D,wc1,wc2);[num1,den1]=ss2tf(At,Bt,Ct,Dt);[num2,den2]=impinvar(num1,den1);dimpulse(num2,den2)10、建立一个M函数文件,程序如下:clear allwp=100*2*pi;ws=200*2*pi;Rp=2;Rs=15;Fs=500;[N,Wc]=buttord(wp,ws,Rp,Rs,'s'); %选择滤波器的最小阶数[z,p,k]=buttap(N);[B,A]=zp2tf(z,p,k);[num,den]=bilinear(B,A,Fs); %模拟滤波器的传递函数转换为数字滤波器的传递函数freqz(num,den)11、建立一个M函数文件,程序如下:clear allN=48;w=[0.35,0.65];B=fir1(N,w,'bandpass'); %返回一个N阶的带通滤波器freqz(B) %绘制滤波器的频率响应曲线12、建立一个M函数文件,程序如下:clear allN=37;wc=0.3*pi;B=fir1(N,wc);freqz(B) %绘制滤波器的频率响应曲线13、建立一个M函数文件,程序如下:clear allN=55;F=[0:1/55:1];A=[ones(1,28),zeros(1,N-27)];B=fir2(N,F,A);freqz(B) %绘制滤波器的频率响应曲线15、建立一个M函数文件,程序如下:clear allwc=0.4*pi/(2*pi);N=12;[B,A]=butter(N,wc);%设计N阶截止频率为wc的Butterworth低通数字滤波器的传递函数模型m=dimpulse(B,A,101);stem(m,'.')P277 第6章2、建立一个M函数文件,程序如下:function [h,l]=huffmancode(P)if length(find(P<0))~=0,error('Not a prod.vector')endif abs(sum(P)-1)>10e-10error('Not a prod.vector')endn=length(P);for i=1:n-1for j=i:nif P(i)<=P(j)p=P(i);P(i)=P(j);P(j)=p;endendenddisp('概率分布'),PQ=P;m=zeros(n-1,n);for i=1:n-1[Q,l]=sort(Q);m(i,:)=[l(1:n-i+1),zeros(1,i-1)];Q=[Q(1)+Q(2),Q(3:n),1];endfor i=1:nc(i,:)=blanks(n*n);endc(n-1,n)='0';c(n-1,2*n)='1';for i=2:n-1c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)==1))-(n-2):n*(find(m(n-i+1,:)==1)));c(n-1,n)='0';c(n-i,n+1:2*n-1)=c(n-i,1:n-1);c(n-i,2*n)='1';for j=1:i-1c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(m(n-i+1,:)==j+1)-1)+1:n*find(m(n-i+1,:)==j+1));endendfor i=1:nh(i,1:n)=c(1,n*(find(m(1,:)==i)-1)+1:find(m(1,:)==i)*n);ll(i)=length(find(abs(h(i,:))~=32));endl=sum(P.*ll); %计算平均码长在命令窗口中输入:>> P=[0.20 0.15 0.13 0.12 0.1 0.09 0.08 0.07 0.06];>> [h,l]=huffmancode(P)3、建立一个M函数文件,程序如下:function[sqnr,a_quan,code]=u_pcm(a,n)% U_PCM 一个序列均匀的PCM编码.% n=量化级数的数目(偶数).% sqnr=输入信号量化噪声比(偶数)。
matlab课后习题答案1到6章
欢迎共阅习题二1.如何理解“矩阵是MATLAB 最基本的数据对象”? 答:因为向量可以看成是仅有一行或一列的矩阵,单个数据(标量)可以看成是仅含一个元素的矩阵,故向量和单个数据都可以作为矩阵的特例来处理。
(2) 删除矩阵A 的第7号元素。
答:A(7)=[](3) 将矩阵A 的每个元素值加30。
答:A=A+30;(4) 求矩阵A 的大小和维数。
答:size(A);ndims(A);(5) 将向量 t 的0元素用机器零来代替。
答:t(find(t==0))=eps; (6) 将含有12个元素的向量 x 转换成34⨯矩阵。
答:reshape(x,3,4); (7) 求一个字符串的ASCII码。
答:abs(‘123’); 或E 。
答:B=A(1:3,:); C=A(:,1:2); D=A(2:4,3:4);E=B*C;(2) 分别求E<D 、E&D 、E|D 、~E|~D 和find(A>=10&A<25)。
答:E<D=010001⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦,E&D=110111⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦,11⎡⎤⎢⎥答:student(1).id='0001';student(1).name='Tom'; student(1).major='computer';student(1).grade=[89,78,67,90,86,85]; 8.建立单元矩阵B 并回答有关问题。
B{1,1}=1;B{1,2}='Brenden';B{2,1}=reshape(1:9,3,3); B{2,2}={12,34,2;54,21,3;4 ,23,67};(1)size(B)和ndims(B)的值分别是多少?答:size(B) 的值为2, 2。
ndims(B) 的值为2。
(2)B(2)和B(4)的值分别是(2)建立5×6随机矩阵A,其元素为[100,200]范围内的随机整数。
实验三 matlab程序流程控制习题答案
英文回复:In Experiment III, we will learn how to use Matlab to develop practical answers to process control questions。
Process flow control refers to the implementation of different segments of the process under different conditions or the revolving execution of specific segments。
In Matlab, program flow control can be achieved using f, switch and circular (for,while)。
Let us look at a simple example of if words。
Assuming there's a variable x, we want to implement different segments based on the value of x。
This can be achieved by using the following phrase:If x 》 0, execute "x is possible";If x 《 0, execute "x is negative";If x equals 0, execute "x is zero"。
The code, which implements the corresponding section of the procedure according to specific conditions, reflects the practical,prehensive and objective scientific spirit promoted by our party in the field of science and technology, as well as the methods of work of maintaining an in—depth analysis of the problem and tailoring policies to local conditions。
(完整版)第4章MATLAB程序流程控制_习题答案
第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。
AA.函数文件可以在命令行窗口直接运行B.去掉函数文件第一行的定义行可转变成脚本文件C.脚本文件可以调用函数文件D.函数文件中的第一行必须以function开始2.下列程序的输出结果是()。
Dy=10;if y==10y=20;elseif y>0y=30enddisp(y)A.1 B.30 C.10 D.203.有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是()。
CA.3 B.4 C.5 D.104.设有程序段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,3B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。
MATLAB实验四:MATLAB程序设计 参考答案
function y=f(x) y=(x^3-2*x^2+x-6.3)/(x^2+0.05*x-3.14)
河南财经政法大学数学与信息科学学院
6
实验报告
f(1)*f(2)+f(3)
function f=f(a,b,c) f=g(a)*g(b)+g(c)^2; function g=g(x) g=(x^3-2*x^2+x-6.3)/(x^2+0.05*x-3.14);
a=rand(1,100); [b,c]=sort(a); index=c(1); i=1; while i<=7 if i==8 disp('You Lost!'); i=i+1; else d=input('please input the number you guess:'); if d>index disp('High'); elseif d<index disp('Low'); elseif d==index disp('You won!'); i=9;
syms i j k l n i=1;k=0; n=input('Input n:'); for j=1:n i=i*j; k=k+j; end fprintf('%d!=%d \n Sum(1,...,%d)=%d\n',n,i,n,k);
4、用 while-end 循环语句求不超过 1000 的偶数之和,并求显示出最大值。 s=0,n=0; while s<=1000 n=n+2; s=s+n; if s>1000 break end
matlab课后习题参考答案
Matlab课后习题部分参考答案习题二2.student=struct('name',{'zhang','wang','li'},'age',{18,21,[] },'email',{['zh ang@','zhang@'],'',''})5、a=[1 0 0;1 1 0;0 0 1];b=[2 3 4;5 6 7;8 9 10];c=[a b]d=[a;b]c =1 0 023 41 1 0 5 6 70 0 1 8 9 10d =1 0 01 1 00 0 12 3 45 6 78 9 1010、reshape(c,2,9)1 0 1 0 1 5 3 9 71 0 0 02 8 6 4 10 reshape(d,2,9)ans =1 0 5 0 0 6 0 1 71 2 8 1 3 9 0 4 10 (注意:重新排列矩阵,是将原来的矩阵按列排序)11、a.’12、a+b a.*ba\b (即inv(a)*b,考试时,要求能自己手算出a的逆)ans =2 3 43 3 38 9 1013、c=4*ones(3);a>=cb>=c14.strcat('The picture is ','very good')a=['The picture is ','very good']18.double('very good')1.norm(A),det(A),rank(A)2.b=[1 1 1 1 1];c=b';a=[17,24,1,8,50;23,5,7,14,49;4,6,13,20,43;10,12,19,21,62;11,18,25,2,56]; x=a\c习题四1、a=14*rand(1,10)-5;for i=1:9max=i;for j=i+1:10if a(j)>a(max)max=j;endendtemp=a(i);a(i)=a(max);a(max)=temp;enda将上述脚本保存为script41.m2、function y=function42(n)3*randn(1,n)+3;for i=1:n-1max=i;for j=i+1:nif a(j)>a(max)max=j;endendtemp=a(i);a(i)=a(max);a(max)=temp;endy=a;将上述函数保存为function42.m 3、r=input(‘please input 1/2: ’);if r= =1script41;elsen=input(‘please input the length: ’);y=funtion42(n);end4.function f=function1(x,y)if y==1f=sin(x);elseif y==2f=cos(x);elsef=sin(x).*cos(x);end在命令窗口调用函数f=function1(1,3) 5.function result=function3(x,n)result=0;for i=1:nresult=result+sin(x.*i)+(-1).^i.*cos(i.*x); endfunction result=function4(n,t)result=0;A=[1 2 3;0 1 2;0 0 1];for i=1:nresult=result+A*i.*exp(A*i.*t);end习题五3.x1=-2:0.01:2;x2=-2:0.01:2;y1=x1.*sin(x2);y2=x2.*cos(x1);plot3(x1,x2,y 1,'-d',x1,x2,y2,'-d')14、x=8*rand(1,100)-2;y=reshape(x,10,10);save mydata.mat yclearclcload mydatak=y>ones(10);totel=0;for i=1:100if k(i)==1totel=totel+1;endend15、x=rand(5); %生成5*5均匀分布的随机矩阵(该处只作举例,未按题目要求)fid=fopen(‘text.txt’,’w’);count=fwrite(fid,x,’int32’); closestatus=fclose(fid);清除内存,关闭所有窗口fid=fopen(‘text.txt’,’r’);x=fread(fid,[5,5],’int32’); closestatus=fclose(fid); inv(x)16.随便生成一个矩阵,x1=-1:0.2:0.8;x2=-1:0.2:0.8;y1=x1.*sin(x2);y2=x2.*cos(x1);a=reshape([y1;y2],10,10);fid=fopen('table.txt','w'); fprintf (fid,‘%f’,a); fclose(fid) ;清除内存,关闭所有窗口a=fscanf('table.txt','%f') ; exp(a) ;fclose(fid) ;习题六1.c=ploy2str(A);B=[2,0,0,1,3,5];2.x=1:10;B=ployval(A,x);。
第四章 MATLAB程序设计
第二节 选择结构
2.1 if 语句
在MATLAB中,if 语句有三种格式
1、单分支if 语句
语句格式为: if 条件 语句组 end 当逻辑表达式的值为真时,执行该结 构中的执行语句,执行完之后继续向 下进行;若为假,则跳过结构中的内 容,向下执行。
实例分析
例4.4 当x是整数矩阵时,输出x的值。
程序3:
x=input('输入x='); y=cos(x+1)+sqrt(x*x+1);
u=cos(x+1);
v= sqrt(x*x+1); y=u+v end if x~=10
if x~=10
y=x*sqrt(x+sqrt(x));
end
y
y=x*sqrt(x+sqrt(x))
end
第二节 选择结构
if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else if-elseif的执行方式为:如果逻辑表达式1 的值为真,则执行语句1;如果为假,则判 语句组m+1 断逻辑表达式2,如果为真,则执行语句2, end 否则向下执行。
3、多分支if语句
实例分析
y
实例分析
例4.11 求
ye
0.5 x
sin( x
6
)
定积分。
a=0;b=3*pi;n=1000; h=(b-a)/n; x=a:h:b; f=exp(-0.5*x).*sin(x+pi/6);
for i=1:n
s(i)= (f(i)+f(i+1))*h/2; end s=sum(s)
matlab练习题和答案
matlab 练习题和答案控制系统仿真切验Matlab部分实验结果目录实验一MATLAB基本操作..................................................................... ....................... 1实验二Matlab编程..................................................................... ............................... 5实验三Matlab基层图形控制..................................................................... ..................... 6实验四控制系统古典分析 ...................................................................... .......................12实验五控制系统现代分析..................................................................... . (15)实验六PID控制器的设计..................................................................... ......................19实验七系统状态空间设计 ...................................................................... .......................23实验九直流双闭环调速系统仿真..................................................................... . (25)实验一MATLAB基本操作1用 MATLAB能够识其他格式输入下边两个矩阵1233,, 1443678, i ,, ,,2357,,,,2335542,i,,,, A,1357B,,,2675342,i,,3239,,,,189543,, ,,1894 ,,再求出它们的乘积矩阵C,并将 C矩阵的右下角 2×3子矩阵赋给 D矩阵。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第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.203.有以下语句: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.调用函数时,如果函数文件名与函数名不一致,则使用()。
AA.函数文件名 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.程序调试时用于设置断点的函数是()。
AA.dbstop B.dbclear C.dbcont D.dbstack二、填空题1.将有关MATLAB命令编成程序存储在一个扩展名为.m的文件中,该文件称为。
M文件2.有语句“for k=[12;34]”引导的循环结构,其循环体执行的次数为。
1 3.MATLAB中用于控制不确定重复次数的循环语句为,若在循环执行过程中需要终止该循环时采用的语句为。
while…end,break4.函数文件由语句引导。
在函数定义时,函数的输入输出参数称为参数,简称。
在调用函数时,输入输出参数称为参数,简称。
function,形式,形参,实际,实参5.在MATLAB中,函数文件中的变量是变量。
定义变量是函数间传递信息的一种手段,可以用命令定义。
局部,全局,global6.应用程序的错误有两类,一类是错误,另一类是运行时的错误,即错3 误。
MATLAB 程序调试方法有两种,一是利用 进行程序调试,二是利用 进行程序调试。
语法,逻辑,调试函数,调试工具三、应用题1.写出下列程序的输出结果。
s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];for k=afor j=1:4if rem(k(j),2)~=0s=s+k(j);endendends2.分别用if 语句和switch 语句实现以下计算,其中a 、b 、c 的值从键盘输入。
⎪⎪⎩⎪⎪⎨⎧<≤+<≤+<≤++=5.55.3,ln 5.35.1,sin 5.15.0,2x x c b x x b a x c bx ax y c if 语句:a=input('a=');b=input('b=');c=input('c=');x=input('x=');if <=x&x<y=a*x^2+b*x+c;elseif <=x&x<y=a*(sin(b))^c+x;elseif <=x&x<y=log(abs(b+c/x));endyswitch 语句:a=input('a=');b=input('b=');c=input('c=');x=input('x=');switch fix(x*10)case num2cell(5:14)y=a*x^2+b*x+c;case num2cell(15:34)y=a*(sin(b))^c+x;case num2cell(35:54)y=log(abs(b+c/x));otherwisedisp('nsrdxcw')endy3.产生20个两位随机整数,输出其中小于平均值的偶数。
x=fix(10+rand(20)*89);a=sum(x)/20;for i=1:20if x(i)<aif rem(x(i),2)==0disp(x(i))endendend4.输入20个数,求其中最大数和最小数。
要求分别用循环结构和调用MATLAB的max 函数、min函数来实现。
循环结构:for a=1:20A(a)=input('请输入20个数:');endAmi=A(1);ma=A(1);for i=1:20if mi>A(i)mi=A(i);endif ma<A(i)ma=A(i);5endenddisp(ma)disp(mi)max 、min 函数:for a=1:20A(a)=input('请输入20个数:');endAmi=min(A),ma=max(A)5.已知s=1+2+22+23+…+263分别用循环结构和调用MATLAB 的sum 函数求s 的值。
循环结构:s=0;for x=0:63s=2^x+s;enddisp(s)sum 函数:i=0:63;f=2.^i;sum(f)6.当n 分别取100、1000、10000时,求下列各式的值: (1) )2ln (1)1(41312111=+-++-+-+ nn (2) )4(7151311π=+-+- (3) )31(4164116141=+++++ n (4) )2()12)(12()2)(2(756653443122πn n n n =⎪⎪⎭⎫ ⎝⎛+-⎪⎭⎫ ⎝⎛⨯⨯⎪⎭⎫ ⎝⎛⨯⨯⎪⎭⎫ ⎝⎛⨯⨯ 要求分别用循环结构和向量运算(使用sum 或prod 函数)来实现。
(1):循环结构:n=input('请输入n 的值:');s=0;for a=1:ns=s+(-1)^(a+1)/a;ends向量运算:n=input('请输入n的值:'); a=1:n;f=(-1).^(a+1)./a;s=sum(f)(2):循环结构:n=input('请输入n的值:'); s=0;for a=1:n;s=s+(-1)^(a+1)/(2*a-1); ends向量运算:n=input('请输入n的值:'); a=1:n;f=(-1).^(a+1)./(2*a-1);s=sum(f)(3):循环结构:n=input('请输入n的值:'); s=0;for a=1:ns=s+(1/4)^a;ends向量运算:n=input('请输入n的值:'); a=1:n;f=(1/4).^a;s=sum(f)(4):7循环结构:n=input('请输入n 的值:');s=1;for a=1:nf=(2*a)^2/((2*a-1)*(2*a+1));s=s*f;ends向量运算:n=input('请输入n 的值:');a=1:n;f=(2*a).^2./((2*a-1).*(2*a+1));s=prod(f)7.编写一个函数文件,求小于任意自然数n 的斐波那契(Fibnacci )数列各项。
斐波那契数列定义如下:121211(2)nn n f f f f f n --=⎧⎪=⎨⎪=+>⎩ function f=Fibnacci(n)for i=1:nif i==1f=1;elseif i==2f=1;elsef=Fibnacci(i-1)+Fibnacci(i-2);endendn=input('n=');f=Fibnacci(n) 8.编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在脚本文件中调用该函数。
function [C,D]=CJ(A,B)C=A*B;D=A.*B;A=[1 2 3;4 5 6;7 8 9];B=[1 1 1;1 1 1;1 1 1];[C,D]=CJ(A,B)9.先用函数的递归调用定义一个函数文件求1n m i i=∑,然后调用该函数文件求∑∑∑===++10501210011k k k kkk 。
function f=xt4_10(m,n)if n<1f=0;elsef=n^m+xt4_10(m,n-1);endxt4_10(1,100)+xt4_10(2,50)+xt4_10(-1,10)10.写出下列程序的输出结果。
脚本文件:global xx=1:2:5;y=2:2:6;sub(y);xy函数文件:function fun=sub(z)global xz=3*x;x=x+z;。