MATLAB实验三答案

  • 格式:doc
  • 大小:49.50 KB
  • 文档页数:11

下载文档原格式

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

MATLAB实验三答案

1.1 判断以下表达式的值

(1) a=20, b=-2, c=0, d=1, 计算下面表达式的值:a>b, b>d,

a>b&c>d, a==b, a&b>c, ~~b, d|b>a, a*b^2>a*c.

>> format compact

>> a=20;b=-2;c=0;d=1;

>> b>d

ans =

>> a>b&c>d

ans =

>> a==b

ans =

>> a&b>c

ans =

>> ~~b

ans =

1

ans =

1

>> a*b^2>a*c ans =

1

(2)

10

21

a

⎡⎤

=⎢⎥

-⎣⎦

02

21

b

⎡⎤

=⎢⎥

--

⎣⎦

,计算a>=b,a|b

>> a=[1 0;-2 1];b=[0 2;-2 -1]; >> a>=b

ans =

1 0

1 1

>> a|b

ans =

1 1

1 1

(3)

1201212

2,,,

01020010

a b c d

--

⎡⎤⎡⎤⎡⎤

====

⎢⎥⎢⎥⎢⎥

⎣⎦⎣⎦⎣⎦

,计算~(a>b),

a>c&b>c, c<=d

>> format compact

>> a=2;b=[1 -2;0 10];c=[0 1;2 0];d=[-2 1 2;0 1 0];

ans =

0 0

0 1

>> a>c&b>c

ans =

1 0

0 1

>> c<=d

Error using ==> le

Matrix dimensions must agree.

根据结果总结关系和逻辑运算符用于数组的运算规律及优先级顺序.

关系运算和逻辑运算的结果只有0和1两种可能。

矩阵进行关系运算时,应该保证两个矩阵的维数一致或其中一个矩阵为标量。比较关系运算是对两个矩阵的对应运算进行比较。

1.2 租用一个交通工具,前100公里需要0.5美元一公里,在下面的200公里中0.23美元每公里,超过300公里的部分一律按0.2美元每公里算,编写一个程序,自定义总公里数x,求总花销及平均每公里的花销。(分别定义x<=100,100300三个总公里数验证结果)。

M文件:

x=input('请输入总公里数x=');

if x<=100

w=0.5*x;

disp(['总花销w=',num2str(w),' 美元'])

elseif 100

w=0.5*100+(x-100)*0.23;

disp(['总花销w=',num2str(w),' 美元'])

else

w=0.5*100+0.23*200+(x-300)*0.2;

disp(['总花销w=',num2str(w),' 美元'])

end

v=w/x;

disp(['平均每公里的花销v=',num2str(v),' 美元/公里'])

运行:

请输入总公里数x=50

总花销w=25 美元

平均每公里的花销v=0.5 美元/公里

请输入总公里数x=150

总花销w=61.5 美元

平均每公里的花销v=0.41 美元/公里

请输入总公里数x=400

总花销w=119 美元

平均每公里的花销v=0.2975 美元/公里

1.3 编写程序计算以下函数,并定义不同的x ,y 值进行验证。

()()()()

()2222,0,0,0,0,,0,0,0,0x y x y x y x y f x y x y x y x y x y +≥≥⎧⎪+≥<⎪=⎨+<≥⎪⎪+<<⎩

M 文件:

x=input('x=');

y=input('y=');

if x>=0&y>=0

f=x+y;

elseif x>=0&y<0

f=x+y^2;

elseif x<0&y>=0

f=x^2+y;

else

f=x^2+y^2;

end

disp(['f(x,y)=',num2str(f)])

运行:

x=1

y=2

f(x,y)=3

x=1

y=-2

f(x,y)=5

x=-1

y=2

f(x,y)=3

x=-1

y=-2

f(x,y)=5

1.4 编写一个switch语句程序,允许使用者输入一个字符串,这个字符串必须是一个星期中的一天(Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday),把这些字符串转化为相应

的数字,以星期天为第一天,星期六为第七天,如果输入不是这些字符串,则输出错误信息。能否用if语句实现呢?

M文件(switch语句):

disp('输入一个星期某一天的英文(开头为大写),显示是一个星期的第几天。')

a=input('a=','s');

switch a

case 'Sunday'

disp('第一天')

case 'Monday'

disp('第二天')

case 'Tuesday'

disp('第三天')

case 'Wednsday'

disp('第四天')

case 'Thursday'

disp('第五天')

case 'Friday'

disp('第六天')

case 'Saturday'

disp('第七天')

otherwise