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*B
ans =
26 20 14
38 29 20
50 38 26
>> A.*B
ans =
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>1
ans =
1
>> 1<=2
ans =
1
>> ne(1,1)
ans =
0
如果是两个矩阵进行比较,则是相对应位置的元素分别进行比较,返回的结果是一个与原来矩阵维数相同的矩阵,元素由0和1组成
4.逻辑运算
逻辑运算有 &(与),|(或),~
(非),对应的函数为and(a,b),or(a,b),not(a),xor(a,b)(异或运算)
(非),对应的函数为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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116869.html