1.经典例题
(1)判断质数
给定一个大于100的数字,判断是否为质数
先设定布尔值是true,也就是假设这个数字是质数,利用for循环进行遍历直到n-1,如果被任意的数字整除,就说明不是质数,我们就把布尔值修改为false,最后输出布尔值,0表示不是质数;
(2)蒙特卡罗模拟求解小猫走出山洞的平均时间
我们首先设置一个行向量,把每次模拟的时间存储到这个向量里面去,我们最后要计算这个平均时间,利用循环,计算每次模拟要花费的时间,利用randi随机生成三种不同的情况,分别对应不同的时间循环,最后把时间存储到对应的T里面的下标,我们再利用mean函数求这个向量里面的所有数据的平均值,这个就是小猫走出山洞的平均时间;
(3)二分法求解零点问题
我们这个二分法类似于变成里面的二分查找;由图像可得到,ab分别是函数图像的两个端点,二分法就是取出ab的中点c,让ac两点的函数值相乘(就是利用数学里面的零点存在定理),如果结果小于0,说明c这个点处的函数值大于0,我们要把函数的零点存在区间缩小到ac之间(体现在代码里面就是赋值);
如果结果大于0,说明c点处的函数值也是小于0的,我们就要把零点的存在区间缩小到cb之间,按照这样依次进行下去;
因为题目给了误差的范围是10的负8次方,我们使用epsilon表示这个阈值,c点的函数值的绝对值小于这个阈值,说明我们就已经找到了零点的坐标,否则就一直进行下去;
2.try-catch语句
示例1:这个地方显然是无法进行运算的,我们直接运算就会报错,使用try-catch语句就不会报错,而是显示相应的提示信息;这个就类似于其他编程语言里面的assert断言
示例2:M是一个4*4的方阵,我们想要取出来这个方阵的第r行数据,如果r小于4的话我们肯定是能够正常取出来的,但是我们的r大于4,就会报错,我们使用try-catch语句,如果越界,就让他返回一个空向量,这个时候我们的6已经越界了,所以会返回一个空向量;
下面我们介绍一个函数lasterr,这个函数可以打印错误信息,显示在输出栏里面(高版本的MATLABcatch语句的后面默认的ME一个名称,只有程序错误的时候才会走进catch语句里面去,我们可以使用ME查看相应的错误信息,查看的方法涉及到面向对象的编程思想,实际上ME里面有很多的信息,我们使用ME.message就可以看到对应的错误信息,但是显然没有我们的函数lasterr方便查看错误)。