专栏首页电子狂人Matlab系列之运算符和标点符号的功能介绍

Matlab系列之运算符和标点符号的功能介绍

。就不多讲太多废话了,开始分享今天的内容,对MATLAB的运算符做个介绍,然后再对标点符号进行功能说明。

~Show Time~

运算符基本上和其他语言一样,包含了算术运算、逻辑运算和关系运算,运算符及其说明如下表所示。

运算符

形式

说明

算术运算符

+

加法

-

减法

*

矩阵乘法

.*

数组乘法

^

矩阵乘方

.^

数组乘方

\

矩阵右除

/

矩阵左除

.\

数组右除

./

数组左除

逻辑运算符

&

逻辑与

|

逻辑或

~

逻辑非

关系运算符

==

等于

~=

不等于

<

小于

>

大于

<=

小于等于

>=

大于等于

1

算术运算符

在算术运算符中,会发现有矩阵运算和数组运算,也就是一个没点,一个有点,我更习惯叫数组运算为,点乘、点除等等,不过这不是重点,重要的是弄清楚这两个的区别:直接用代码来解释:

代码:

a=eye(2),b=ones(2),c=a*b,d=a.*b

结果:

对代码做下解释,使用eye函数产生一个2维的单位对角矩阵,使用ones产生一个2维的全1矩阵,直接看结果也可以猜出两者的作用,然后分别使用“*”和“.*”,各自对应c和d,从结果可以分析出来,矩阵运算也就是不带点的运算就是按照矩阵的运算规则进行运算,而数组运算则是位置对应的元素进行运算,前提当然是参与运算的矩阵维度需要一致了,不然要报矩阵维度不一致的错误。

2

关系运算符

关系运算符就更好理解了,直接用来对两个变量进行比较,这变量可以是数值、数组和矩阵,也可以是不同类型的两个数据,有一个比较重要的就是,矩阵之间的比较是指维度相同的情况下,然后返回相同维度的比较结果,还有一个要注意的就是矩阵可以和标量比较,会返回只含0或1的数值或矩阵,1和0分别代表逻辑真假,也就是比较的两者是否相同,上代码看看效果。

代码:

a=reshape(1:9,3,3),b=magic(3)

结果:

代码说明:本处的a就是使用reshape将一个1到9的行向量转换成一个3*3的矩阵,b就是使用magic产生一个三维的幻方矩阵。

然后使用两次不同的关系运算符来观察下结果:

3

逻辑运算符

逻辑运算符的理解就更简单了,学过其他编程语言的应该都比较清楚,我就直接来几个常用的运算及其结果,具体就不多说了。

逻辑与(&):1&1=1,1&0=0,0&0=0;总结就是全1为1,有0则0;

逻辑或(|):1&1=1,1&0=1,0&0=0;总结就是有1为1,全0为0;

逻辑非(~):~1=0,~0=1;这个和取反相同的意思。

对于关系运算和逻辑运算还有相关的函数,具体如下表,根据所需自行使用。

函数分类

函数名

说明

关系操作函数

eq(A,B)

等于

ne(A,B)

不等于

lt(A.B)

小于

gt(A,B)

大于

le(A,B)

小于等于

ge(A,B)

大于等于

逻辑运算函数

and(A,B)

逻辑与

or(A,B)

逻辑或

not(A,B)

逻辑非

xor(A,B)

逻辑异或

any(A)

向量A中有非零元素时返回1矩阵A的某一列有非零元素时此列返回1

all(A)

向量A中有非零元素时返回1矩阵A的某一列有非零元素时此列返回1

在编程时,若遇到多个运算符共存于一个运算式时,要注意运算符是有优先级的,最高级别的是算术运算符,其次是关系运算符,最后才是逻辑运算符,不过我一般不记忆这些,都是直接使用括号“( )”来改变运算顺序,感觉代码会易读一些,所以就不对各个优先级再多述了。

再对MATLAB的标点符号的作用做下介绍,直接看画的表吧,方便记忆。

名称

符号

功能

空格

变量之间或者数组行元素之间的分隔符

逗号

,

用于要显示计算结果的命令之间的分隔符;用于输入变量之间的分隔符;用于数组行元素之间的分隔符

点号

.

数值中的小数点

分号

;

控制对应的命令所在行的计算结果不显示;用于不显示计算结果的命令之间的分隔符;用于数组行的分割

冒号

:

用于生成数值数组;代表一维数值的全部元素或多维数组的某行/某列的全部元素

百分号

%

用于注释

单引号

用于包含字符串

圆括号

( )

用于引用数组元素;用于函数的输入变量;用于确定算术运算的运算顺序

方括号

[ ]

用于构成向量和矩阵;用于函数的输出

花括号

{ }

用于构成元胞数组

下划线

_

长名称的变量命名时可以用上

续行号

用于把后面行与该行连接以构成一个较长的命令

艾特符号

@

放在函数名前,形成函数句柄;放在目录名前,形成用户对象类目录

表中的这些符号,我觉得冒号比较有趣,我跑几个代码看看结果,希望你们能够感受其魅力~

1、

A=1:6

2、

B=1.1:7.7

3、

C=7:1

4、

D=1:3:11

5、

E=[1 2 3;4 5 6]

6、

F=E(1,:)

7、

G=E(:,1)

8、

H=E(3:6)

9、

A=[1 2 3;4 5 6;7 8 9]I=A(:,1:2)

夜深了,就不对代码一一解释了,根据上面讲的以及自我想象去感受其魅力吧

本文分享自微信公众号 - 电子狂人(DZKR666),作者:狂人V

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Matlab系列之矩阵秀

    上次讲完了数组的基本操作,不知道是否熟悉使用了,本篇将要对矩阵部分的操作再进行介绍,这部分的内容我觉得蛮有意思的,不过你们觉不觉得我就不知了,但还是想让你们可以...

    狂人V
  • Matlab系列之数组(矩阵)的生成

    从本篇开始,会有一段时间都将用于记录数组、矩阵的操作等等,如果以前没有接触过相关的,可能会觉得要展示的是很复杂的东西,但并不是,这是一个很简单的部分,但也是一个...

    狂人V
  • 数组的运算+矩阵的运算

    近来有点忙于学新东西,时间不太够,所以到现在快将近一个月没更新了,感觉自己都要忘记还有这回事了,哈哈,不多说了,接上之前的篇章内容继续吧,如果有遗忘的,就去温故...

    狂人V
  • 【MATLAB 从零到进阶】day3 矩阵 数组

    矩阵的除法包括左除(A\B)、右除(A/B)和点除(A./B)三种。一般情况下,x=A\b是方程组A*x=b的解,而x=b/A 是方程组x*A=b的解,x=A....

    统计学家
  • 【自考】数据结构第三章,数组,期末不挂科指南,第5篇

    一维数组元素的内存单元地址是连续的 二维数组可有两种存储方法:一种是以列序为主序的存储;另一种是以行序为主序的存储。 ==C语言中,数组采用的是以行序为主序...

    梦想橡皮擦
  • 数据结构基础(一)数组,矩阵

    有一个等式,数据结构+算法=程序,说明了数据结构对于计算机程序设计的重要性。数据结构是指数据元素的集合(或数据对象)及元素间的相互关系和构造方法。数据对象中元素...

    AlbertYang
  • 加码自动驾驶,四维图新开启长期战争

    在人工智能技术大爆发的背景下,广受汽车行业关注的自动驾驶技术,也开始进入大众的视野,资本市场也因此越发热切的关注自动驾驶领域的动态。8月27日,国内知名数字地图...

    刘旷
  • 二维数组与稀疏矩阵的互转

    链上世界
  • How to Config Samba Config With No Password Share

    happy123.me
  • SDNLAB技术分享(十一):VXLAN基础知识

    ? 之前Arista在欧洲阶段性的有ATF的类似技术论坛的会议, ARISTA TECHNICAL FORUM, 后来到了美国和APAC, 名字改了, 改为C...

    SDNLAB

扫码关注云+社区

领取腾讯云代金券