1MATLAB实验三答案1.1判断以下表达式的值(1)a=20,b=-2,c=0,d=1,计算下面表达式的值:ab,bd,ab&cd,a==b,a&bc,~~b,d|ba,a*b^2a*c.formatcompacta=20;b=-2;c=0;d=1;bdans=0ab&cdans=0a==bans=0a&bcans=0~~bans=12d|baans=1a*b^2a*cans=1(2)1021a,0221b,计算a=b,a|ba=[10;-21];b=[02;-2-1];a=bans=1011a|bans=1111(3)12012122,,,01020010abcd,计算~(ab),ac&bc,c=dformatcompacta=2;b=[1-2;010];c=[01;20];d=[-212;010];3~(ab)ans=0001ac&bcans=1001c=d???Errorusing==leMatrixdimensionsmustagree.根据结果总结关系和逻辑运算符用于数组的运算规律及优先级顺序.关系运算和逻辑运算的结果只有0和1两种可能。优先顺序运算符()^~*====|&4矩阵进行关系运算时,应该保证两个矩阵的维数一致或其中一个矩阵为标量。比较关系运算是对两个矩阵的对应运算进行比较。1.2租用一个交通工具,前100公里需要0.5美元一公里,在下面的200公里中0.23美元每公里,超过300公里的部分一律按0.2美元每公里算,编写一个程序,自定义总公里数x,求总花销及平均每公里的花销。(分别定义x=100,100x=300,x300三个总公里数验证结果)。M文件:x=input('请输入总公里数x=');ifx=100w=0.5*x;disp(['总花销w=',num2str(w),'美元'])elseif100x=300w=0.5*100+(x-100)*0.23;disp(['总花销w=',num2str(w),'美元'])elsew=0.5*100+0.23*200+(x-300)*0.2;disp(['总花销w=',num2str(w),'美元'])endv=w/x;disp(['平均每公里的花销v=',num2str(v),'美元/公里'])5运行:请输入总公里数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,0xyxyxyxyfxyxyxyxyxyM文件:x=input('x=');y=input('y=');ifx=0&y=0f=x+y;elseifx=0&y0f=x+y^2;6elseifx0&y=0f=x^2+y;elsef=x^2+y^2;enddisp(['f(x,y)=',num2str(f)])运行:x=1y=2f(x,y)=3x=1y=-2f(x,y)=5x=-1y=2f(x,y)=3x=-1y=-2f(x,y)=51.4编写一个switch语句程序,允许使用者输入一个字符串,这个字符串必须是一个星期中的一天(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday),把这些字符串转化为相应7的数字,以星期天为第一天,星期六为第七天,如果输入不是这些字符串,则输出错误信息。能否用if语句实现呢?M文件(switch语句):disp('输入一个星期某一天的英文(开头为大写),显示是一个星期的第几天。')a=input('a=','s');switchacase'Sunday'disp('第一天')case'Monday'disp('第二天')case'Tuesday'disp('第三天')case'Wednsday'disp('第四天')case'Thursday'disp('第五天')case'Friday'disp('第六天')case'Saturday'disp('第七天')otherwise8disp('输入有错')endM文件(if语句):a=input('a=','s');ifa=='Sunday'disp('第一天')elseifa=='Monday'disp('第二天')elseifa=='Tuesday'disp('第三天')elseifa=='Wednsday'disp('第四天')elseifa=='Thursday'disp('第五天')elseifa=='Friday'disp('第六天')elseifa=='Saturday'disp('第七天')elsedisp('输入有错')endswitch语句运行结果:9输入一个星期某一天的英文(开头为大写),显示是一个星期的第几天。a=Monday第二天输入一个星期某一天的英文(开头为大写),显示是一个星期的第几天。a=monday输入有错If语句运行结果:输入一个星期某一天的英文(开头为大写),显示是一个星期的第几天。a=Sunday???Errorusing==eqMatrixdimensionsmustagree.Errorin==test6at3ifa=='Sunday'输入一个星期某一天的英文(开头为大写),显示是一个星期的第几天。a=Sunday%有8个字符10第一天用if语句时字符数要相等,而switch没有要求。1.5试编写程序提示用户输入任意整数a,程序可计算出a的阶乘并输出。注意0的阶乘为0,当a0时提示出错。M文件:disp('请输入任意整数:');a=input('a=');ifa0&a==floor(a)b=1;fork=1:ab=b*k;enddisp(['a的阶乘为:',num2str(b)])elseifa==0disp(['a的阶乘为:',num2str(0)])elsedisp('输入有错')end11运行:请输入任意整数:a=5a的阶乘为:120请输入任意整数:a=0a的阶乘为:0请输入任意整数:a=-1输入有错请输入任意整数:a=4.2输入有错