目录
1.点运算
2.文件介绍
(1)文件分类
(2)温度转换
(2)函数调用
(3)建模经验
(4)注意事项
(5)多个返回值情况
(6)两种类型文件的转换
3.条件&&循环语句
(1)if语句
(2)switch语句
(3)for语句
(4)while循环
编辑 (5)break&continue使用
(6)循环嵌套
1.点运算
(1)点运算是matlab里面的一种特殊的运算,也是matlab里面的亮点所在,就是例如.* ./ .^这样的我们都称之为点运算,就是在原来的运算符的基础上面添加了一个点,我们把这样的运算符叫做点运算符,这样的运算符连接起来的运算叫做点运算;
(2)很多时候,同学们就是很好奇这个点运算有什么用,下面通过这两个例子介绍一下点运算的用法,再去介绍这个运算的相关的规则;
下面的就是我在自己的matlab上面实操一下,做出来的图形:
实际上这个点成的使用场景就是两个向量之间的相乘,一个数字和一个向量相乘就不需要使用点乘,因为这个时候如果这两个操作数里面有一个是数字,那么这个运算符使用点乘和乘号的效果是一样的,我们在这个matlab里面必须要具有一个向量的概念,这个概念和这个数学里面的向量还是不一样的,因为这个数学建模里面的向量不是一个元素,是可以有很多个元素的,类似于矩阵,一个向量和另外一个向量相点乘,我们使用的就是这个对应位置元素相乘,和这个矩阵里面的乘法是不一样的,而且这个情况下两个矩阵的行数和列数一定要相等;
(3)下面的是一个点运算在参数方程里面的运用,plot(x,y)就是表示画出来这个二维的平面图形;
这个里面的t就是一个有很多个元素组成的行向量,sin(t)也是与之对应的一个向量,因此在写这个第三行的代码的时候,这个向量之间的乘法就是使用的是点乘运算,第二行的sin里面的就是一个数字和向量相乘,这个时候两个方式都是可以的;
2.文件介绍
(1)文件分类
在matlab里面有这个m文件,因为我学习的这套课程使用的matlab版本是较低的,因此这个m文件在我们现在使用的高版本里面就是mlx文件,即实时脚本,读者清楚就可以了,m文件就是一种在matlab环境里面可以直接运行的文件;
在这个m文件里面,拥有这个命令文件和函数文件;
(2)温度转换
首先我们通过一个华氏温度和摄氏温度转换的例子认识一下这个m文件里面的命令文件,我们下面可以清楚的看到这个就是先输入一个温度,在去调用这个转换的式子,最后想要达到的效果就是输出我们想要的结果;这个需要的就是我们对于这个文件进行命名,之后直接在这个命令窗口里面输入这个文件的名字,输入温度之后就可以进行这个相应的转换了;
大家可以看到,我在这个上面是尝试了好几次的,原因就是这个我最开始的时候这个在17行后面加上了分号,导致这个结果一直没有显示出来,因此这个最后发现之后才打印出来这个转换之后的结果;这个实际上也可以不借助这个脚本完成,我们可以直接把这个几行代码粘贴到命令行窗口里面去实现这个温度的转换,这个读者可以下去尝试;
(2)函数调用
下面试用一下这个函数文件,这个函数文件也是在脚本里面写入的,以function关键字开头,w就是一个变量的名字,用来接收这个函数的运行结果,wendu2就是这个函数的名字,后面的括号里面的表示的就是这个自变量,我们就可以理解为这个sin(x)这样的函数,这里只不过是我们自己定义一个名字叫做wendu2的函数,w这个就是一个变量可以随便取一个名字;
第二行就是这个函数的表达式,这个就是一个函数文件,这个文件写完之后,不可以直接运行,而是要在这个命令行里面进行这个调用,也可以在其他的脚本文件里面进行调用都是可以进行这个尝试的;
上面的这个就是在命令行里面调用函数的方法,我们需要使用一个变量接受这个结果,这个变量既可以是我们的函数文件里面的变量,也可以是其他的变量,这个都是没有问题的,我已经进行了尝试;这个函数文件在编写完成,保存的时候这个文件的名字就是系统会默认使用这个函数名字作为这个文件的名字,但是上面的命令文件就不会这样做,这个也是两者之间的一个区别;
下面的就是在这个其他的脚本文件里面去调用函数,我是在另外一个文件里面调用的,上面显示也是可以去得出这个转换后的记过的;
(3)建模经验
虽然上面的这个函数文件编写,这个函数调用并不是很困难,但是这个告诉我们,我们要敢于去打破这个程序,敢于尝试,例如上面我们就可以自测看看是否可以在其他的脚本文件里面去调用这个函数,是否可以使用这个不同的名字的变量去接受这个函数的运行结果,这些东西我们哦平常就要去刻意地进行训练,作为数模人,我们就应该具备这样的意识;
(4)注意事项
上面我们就是把一个数据带入这个函数进行运算,实际上这个是可以带入一组元素进行运算的,我们自己定义一个行向量x带入这个函数进行运算,输出的结果就是一组行向量;这个地方需要注意的一个点就是,我们的这个x是以一个向量的形式带入的,那么这个函数就需要支持这个运算,原来的这个乘法除法就需要进行检验,看看这个是否需要加上点,例如这个函数里面的除以9改为其他的向量,这个时候前面是向量,后面是向量,我们这个就不可以使用普通的乘法了,而是要使用点乘运算,这个也是我们需要注意的,可能原来只是单个运算的时候不会出现这个问题,但是一旦我们引入了向量之后,这个需要注意点运算和向量的匹配问题;
(5)多个返回值情况
接下来这个函数是有多个返回值的,就是我们调用这个函数可以返回两个数值,一个是这个圆的周长,一个是圆的面积,下面看一下这个返回值的写法;
这个计算面积s的时候,使用了一个乘号以及一个点乘,这个点乘是因为前面的r是一个变量可以是一个行向量,乘号是因为这个前面是一个常数pi,数字和向量相乘,可以不需要使用点乘符号;
下面我们让这个circle函数有两个返回值,一个周长,一个面积,同样这个我们可以使用一个数值带入函数计算,也可以使用一个向量带入函数运算,但是这个输出的结果好像不太对,我们可以自己进行这个尝试;
实际上,这个只需要在命令行里面写出来这个返回值的个数,而且这个脚本里面的面积和周长的计算公式里面后面加上逗号就不会出现这个ans行向量了;
(6)两种类型文件的转换
我们的这个案例就是生成一个范德蒙德行列式(属于线性代数知识,自行学习),其实这个行列式的特征也是非常明显的,就是每一列都是倍数增加的,我们就是使用一个循环实现的;
实际上这个纯脚本文件编写时候,我们如果在这个循环语句的后面不添加上这个分号,就会打印出来五个矩阵,我们加上分号之后,最后再循环语句结束之后,打印出来d就是最后一次循环运行的结果;
下面看一下这个函数文件的编写和调用代码:
下面的这两个名字必须是一样的,否则会报错 ,可以把这个f理解为函数的返回值,把这个函数的运算结果赋值给f这个返回值;
3.条件&&循环语句
(1)if语句
这个语句可以是单分支的,也可以是多分支的,这个其实和其他的编程语言没有什么区别,就不再进行赘述了;
(2)switch语句
下面的这个switch案例是一个和这个商品的打折相关的问题,前期我们呢看一下熟悉这个语句的用法,实际上赛题里面好像用到的可能性也不是很大;
通过下面的这个也可以验证function的后面名字作为返回值接受这个函数的执行结果的,这两个未知的名字必须是一样的;
(3)for语句
下面的就是一个求和运算,我们使用for循环实现:
矩阵的元素求和的运算:
我们通过测试就可以发现这个每一次取出的就是矩阵里面的一列,但是求和的时候求解的是每一行的结果,disp表示的就是把这个结果显示在屏幕上面,s'表示的就是对于这个得到的结果转置;
(4)while循环
(5)break&continue使用
像rem这个求余数的函数,我们就可以直接在百度上查,学习到一定的阶段之后就可以开始记住一些经常使用的,开始的时候不要pua自己;
(6)循环嵌套
我在下面演示的时候,把这个矩阵的内容进行了修改: