数组的运算
数组运算指的是数组对应元素之间的运算,也称作点运算,而等下讲到的矩阵的乘法、除法以及乘方那些都是有特殊的数学含义,和数组相对应元素的运算不一样,所以会在数组乘法、除法和乘方的运算符前加个点表示点运算。
数值运算
利用数学函数进行运算,例如:
利用取整和求余函数,可以得到整数或精确到小数点后的几位,例如:
注:产生-10到10之间的随机数,其中round的作用是将小数取整,即四舍五入的作用
然后精确小数点到某一位是否就有想法了。。。看举例:
原理就是将原数先扩大100倍,取整后,再整除100得到想要的精确度,这种操作我经常用。
逻辑运算
逻辑运算的逻辑操作符在MATLAB中提供了三个,常用的与或非,即&、|、~;与之相对应的3个逻辑操作函数分别是and、or和not,作用一样,至少使用格式不同,逻辑操作函数还有xor(异或),逻辑运算时,非零值元素都是当作“1”即逻辑真进行处理,举例:
以上就是简单的一个逻辑非的运算,及其结果,接着来下逻辑与,还有部分逻辑函数的举例:
关系运算
关系运算里的关系操作符,就是大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(~=)这些写代码做判断时经常见到的关系判断所用的操作符号,如果关系式成立,结果就是逻辑真(1),否则为逻辑假(0),这个例子也没什么好举的,就是if elseif这些条件判断语句中用到的判断关系式,就不多说了。
向量的三种积
三种积包括点积、叉积、混合积,它们在高等数学里代表的含义我就不多说了,想知道具体含义以及原理,就自行了解了,感觉讲这些太麻烦了,直接说在MATLAB中的实现,点积由函数:dot实现,叉积由函数:cross实现;混合积就是由这点积和叉积的函数一起实现,顺序是:先叉积后点积,顺序不可颠倒,不然要出错,针对这三个来点例子:
矩阵的运算
基本运算
关于矩阵的基本运算,比较需要注意的是矩阵的维数,加减运算就需要满足行列数一致,乘积运算就需要满足前一个矩阵的列数要和后一个的行数一致,除法的话,要知道左除和右除的区别,针对加减乘先进行举例,除法有点小特殊,分开来演示感觉方便些:
可以看到D是由A和B转置的乘积,刚刚也说过了,乘法需要一个矩阵的列数要和后一个矩阵的行数保持一致,接着说下除法,除法分为左除和右除,就是“\”和”/”,这个就是线代里的左除和右除,即表达式两边同时左除或者右除,比如:AX=B,求解X,就相当于X=(1/A)B,即X=A\B,因此右除就很好解释了:X*A=B,X=B/A,看下两种运算产生的结果会是怎样的:
矩阵的乘方可以由符号“^”实现,这个在其他语言也有些是这样表示,开方的话,就是用函数sprtm实现,举例:
还有一个是矩阵的指数和对数运算,这是很重要的两个运算,函数分别就是:expm和logm,使用举例:
A的那个操作,没什么实际意义,对数的值要为正实数就是了。
点运算
看到这个标题,估计你对矩阵和数组的区别可能就有点懵了,现在我就再简单粗暴的解释下,矩阵的元素只能是数字,但是数组可以是字符等,还有,矩阵其实应该说是一个数学概念,而数组是计算机的一个概念,矩阵是以数组的形式存在,一维的数组是向量,多维的数组相当于矩阵,前提是元素是数字,然后总的一句话就是,矩阵是数组的子集~
对乘法、除法和乘方进行举例,要注意矩阵的维数:
有没有发现,这边的左右除和刚刚矩阵的左右除是不是不一样,你品,你细品~
当两个矩阵维数一致,可以直接进行乘方运算,指数以及底数当然也可以是标量:
到此,本篇就结束了,点运算是MATLAB中比较重要的一个运算,实际应用也有着很重要的作用,所以,看到此处的你如果对以上的内容还有点懵的话,就多看几遍,把各个点串起来~