Matlab studying~ 运算

来源:互联网 发布:消防知识知多少通讯稿 编辑:程序博客网 时间:2024/06/11 08:21

1.基本运算

matlab中的运算实在矩阵意义下进行的,单个数据的运算只是一种特例,例如,矩阵的加减法,必须满足矩阵加减法的条件:矩阵的维数必须相同,矩阵也可以与标量进行加减法,此时即为矩阵中的每个元素都分别与标量进行加减运算。矩阵的乘法 * 也必须保证维数相同。除法则是有两种 左除(\)与右除(/) A\B表示A的逆左乘B,同样,A/B表示A矩阵的逆右乘矩阵B

2.点运算

这一点我觉得还是很重要的,也就是在运算符前面加 . ,例如:.* , ./ ,.^等等,例如:A.*B 与A *B,这两点是不一样的:
>> A=[1,2,3;2,3,4;3,4,5];>> B=[3,2,1;4,3,2;5,4,3];>> A*Bans =    26    20    14    38    29    20    50    38    26>> A.*Bans =     3     4     3     8     9     8    15    16    15
也就是说,带有.的运算,是将矩阵中的对应元素进行运算,而不带.的运算则是完全按照矩阵进行的,在进行函数的运算中是较容易弄混的,例如:
x=1,2,3,4,5的时候,求解 y= sin x cos x的值:
>> x=1:1:5;>> y=sin(x)*cos(x)错误使用  * 内部矩阵维度必须一致。 >> y=sin(x).*cos(x)y =    0.4546   -0.3784   -0.1397    0.4947   -0.2720
可以看到,仅用 * 时,运算是不会进行的,因为sin与cos的运算结果为5个元素的以为矩阵,连个矩阵之间无法进行运算。

3.关系运算

matlab中关系运算主要有 :< (小于) <=(小于等于)  >(大于) >=(大于等于) ==(等于) ~=(不等于),6种关系运算分别对应6种函数:lt,le,gt,ge,eq,ne;
当两个比较量为标量时,直接比较两个的大小,如果关系成立,表达式结果为1 反之为0:
>> 2>1ans =     1>> 1<=2ans =     1>> ne(1,1)ans =     0
如果是两个矩阵进行比较,则是相对应位置的元素分别进行比较,返回的结果是一个与原来矩阵维数相同的矩阵,元素由0和1组成

4.逻辑运算

逻辑运算有 &(与),|(或),~(非),对应的函数为and(a,b),or(a,b),not(a),xor(a,b)(异或运算)
如果运算双方为同维的矩阵,则对应位置的元素进行逻辑运算,如果其中一个是标量,则是该标量分别与矩阵中的每个元素进行逻辑运算

这里提一下find函数,find函数是用来找矩阵中的非零元素的,例如:
>> A=[1,2,3,0;2,0,0,0;3,4,0,0]A =     1     2     3     0     2     0     0     0     3     4     0     0>> k=find(A)k =     1     2     3     4     6     7>> A(k)ans =     1     2     3     2     4     3




0 0
原创粉丝点击