第三章分支语句和编程设计

3.5附加的画图特性第70页的答案。根据下面的描述编写对应的MATLAB语句:

  1. 如果x大于等于0,把x的平方根赋值于变量sqrt_x,并打印出结果。否则,打印出一条关于平方根函数参数的错误信息,并把sqrt_x归零。

if x >= 0

    sqrt_x = sqrt(x);

    disp(sqrt_x);

else

    disp('Error: Invalid input for square root function.');

    sqrt_x = 0;

end

  1. 变量fun由n/m计算得到,如果m的绝对值小于1.0e-300,打印出除数为0的错误信息,否则计算并打印出fun值。

if abs(m) < 1.0e-300

    disp('Error: Division by zero.');

else

    fun = n / m;

    disp(fun);

end

  1. 租用一个交通工具前100公里0.50美元每公里,接下来的200公里中0.30美元每公里,超过300公里的部分一律按0.20美元每公里。已知公里数,编写对应的MATLAB语句计算出总费用和平均每公里的费用。

if km <= 100

    cost = km * 0.50;

elseif km <= 300

    cost = 100 * 0.50 + (km - 100) * 0.30;

else

    cost = 100 * 0.50 + 200 * 0.30 + (km - 300) * 0.20;

end

avg_cost = cost / km;

disp(['Total cost: ', num2str(cost)]);

disp(['Average cost per km: ', num2str(avg_cost)]);

  1. 检测下面的MATLAB语句是否正确。正确的输出结果如何,错误的,错在哪里?

if volts > 125

    disp('WARNING: High voltage on line.');

elseif volts < 105

    disp('WARNING: Low voltage on line.');

else

    disp('Line voltage is within tolerances.');

end

错误:elseif 应该改为 if,否则它会只执行第一个if或者else的内容。应改为:


if volts > 125

    disp('WARNING: High voltage on line.');

end

if volts < 105

    disp('WARNING: Low voltage on line.');

else

    disp('Line voltage is within tolerances.');

end

  1. 检测下面的MATLAB语句是否正确。

color = 'yellow';

switch(color)

    case 'red'

        disp('Stop now!');

    case 'yellow'

        disp('Prepare to stop.');

    case 'green'

        disp('Proceed through intersection.');

    otherwise

        disp('Illegal color encountered.');

end

正确:输出结果为Prepare to stop.

  1. 检测下面的MATLAB语句是否正确。

if temperature > 37

    disp('Human body temperature exceeded.');

elseif temperature > 100

    disp('Boiling point of water exceeded.');

end

错误:第二个条件永远不会被检查到,因为如果temperature > 100,它已经满足temperature > 37的条件。应改为:


if temperature > 100

    disp('Boiling point of water exceeded.');

elseif temperature > 37

    disp('Human body temperature exceeded.');

end

3.5附加的画图特性

在本节中,我们将讨论简单的二维图象(在第二章我们已有所介绍)的附加特性。这些特性将允许我们控制x,y轴上的值的范围,在一个坐标系内打印多个图象,或创建多个图,或在一个图象窗口内创建多个子图像,或提供更加强大的轨迹文本字符控制。还有,我们将学习如何创建极坐标。

3.5.1 控制x,y轴绘图的上下限

在默认的情况下,图象的X,Y轴的范围宽到能显示输入值的每一个点。但是有时只显示这些数据的一部分非常有用,这时你可以应用axis命令/函数。axis命令/函数的一些形式展示在这里。其中两个最重要的形式在表中用黑体字标出——它允许程序员设定和修改坐标的上下限。所有形式的完全列表将会在MATLAB的在线文件中找到。为了说明axis的应用,我们将画出函数f(x)=sin(x)从­-2π到2π之间的图象,然后限定坐标的上下限。更多关于MATLAB绘图的例子可以参考这里

希望这些MATLAB语句能帮你解决问题,并且对后续的学习有所帮助。