matlab求两向量夹角_Matlab课后答案第四章

 m文件是matlab程序的容器。

01

  学会使用函数m文件,程序m文件;

  • 区别:函数m文件调用需要传入参数

  • 函数m文件可以在命令行调用,也可以在程序m文件中调用

02

一、选择题

1.下列关于脚本文件和函数文件的描述中不正确的是(      )。 A

A.函数文件可以在命令行窗口直接运行

B.去掉函数文件第一行的定义行可转变成脚本文件

C.脚本文件可以调用函数文件

D.函数文件中的第一行必须以function开始

2.下列程序的输出结果是(      )。D

y=10;

if y==10

   y=20;

elseif y>0

   y=30

end

disp(y)

A.1            B.30           C.10          D.20

3.有以下语句:

a=eye(5);

for n=a(2:end,:)

for循环的循环次数是(      )。C

A.3            B.4           C.5          D.10

4.设有程序段

k=10;

while k

   k=k-1

end

则下面描述中正确的是(    )。A

A.while循环执行10次                            B.循环是无限循环

C.循环体语句一次也不执行                        D.循环体语句执行一次

5.有以下程序段:

x=reshape(1:12,3,4);

m=0;

n=0;

for k=1:4

    if x(:,k)<=6

        m=m+1;

    else

        n=n+1;

    end

end

则m和n的值分别是(      )。C

A.6  6       B.2  1        C.2   2       D.1  2

6.调用函数时,如果函数文件名与函数名不一致,则使用(      )。A

A.函数文件名                       B.函数名

C.函数文件名或函数名均可          D.@函数名

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

A.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是(       )。A

A.匿名函数        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.25

10.程序调试时用于设置断点的函数是(      )。A

A.dbstop         B.dbclear          C.dbcont      D.dbstack

二、填空题

1.将有关MATLAB命令编成程序存储在一个扩展名为.m的文件中,该文件称为        。M文件

2.有语句“for k=[12;34]”引导的循环结构,其循环体执行的次数为         。1

3.MATLAB中用于控制不确定重复次数的循环语句为        ,若在循环执行过程中需要终止该循环时采用的语句为        。while…end,break

4.函数文件由        语句引导。在函数定义时,函数的输入输出参数称为       参数,简称       。在调用函数时,输入输出参数称为        参数,简称        。

function,形式,形参,实际,实参

5.在MATLAB中,函数文件中的变量是        变量。定义        变量是函数间传递信息的一种手段,可以用        命令定义。局部,全局,global

6.应用程序的错误有两类,一类是        错误,另一类是运行时的错误,即       错误。MATLAB程序调试方法有两种,一是利用        进行程序调试,二是利用        进行程序调试。

语法,逻辑,调试函数,调试工具

三、应用题

1.写出下列程序的输出结果。

s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];for k=a    for j=1:4        if rem(k(j),2)~=0            s=s+k(j);        end   endends

2.分别用if语句和switch语句实现以下计算,其中a、b、c的值从键盘输入。

if语句:a=input('a=');b=input('b=');c=input('c=');x=input('x=');if 0.5<=x&x<1.5y=a*x^2+b*x+c;elseif 1.5<=x&x<3.5y=a*(sin(b))^c+x;elseif 3.5<=x&x<5.5y=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')endy

3.产生20个两位随机整数,输出其中小于平均值的偶数。

x=fix(10+rand(20)*89);a=sum(x)/20;for i=1:20if x(i)if rem(x(i),2)==0disp(x(i))endendend

4.输入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 mama=A(i);endenddisp(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时,求下列各式的值:

c16e7d0975427d98b879fe9e906ddf45.png

要求分别用循环结构和向量运算(使用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):循环结构: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)数列各项。斐波那契数列定义如下:

function f=Fibnacci(n)for i=1:nif i==1f=1;elseif i==2f=1;elsef=Fibnacci(i-1)+Fibnacci(i-2);endend n=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.先用函数的递归调用定义一个函数文件求,然后调用该函数文件求。

function f=xt4_10(m,n)if n<1   f=0;else   f=n^m+xt4_10(m,n-1);end xt4_10(1,100)+xt4_10(2,50)+xt4_10(-1,10)

10.写出下列程序的输出结果。

脚本文件exe.m:

global x x=1:2:5;y=2:2:6; sub(y);  x y 

函数文件sub.m:

function fun=sub(z)global xz=3*x;x=x+z;
  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值