Matlab studying~ 运算

导读:本篇文章讲解 Matlab studying~ 运算,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116869.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!