Matlab studying~ 运算

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)(异或运算)
如果运算双方为同维的矩阵,则对应位置的元素进行逻辑运算,如果其中一个是标量,则是该标量分别与矩阵中的每个元素进行逻辑运算

这里提一下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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值