当前位置:文档之家› Matlab的逻辑运算

Matlab的逻辑运算

Matlab的逻辑运算
Matlab的逻辑运算

Matlab中的逻辑运算"&&"与"&","||"与"|"的区别

逻辑运算符:

& 与

| 或

~ 非

“&”和“|”操作符可比较两个标量或两个同阶矩阵.对于矩阵来说必须符合规则,如果A和B都是0-1矩阵,则A&B或A|B也都是0-1矩阵,这个0-1矩阵的元素是A和B对应元素之间逻辑运算的结果,逻辑操作符认定任何非零元素都为真,给出“1”,任何零元素都为假,给出“0”.

非(或逻辑非)是一元操作符,即~A:当A是非零时结果为“0”;当A为“0”时,结果为“1”.因此下列两种表示:

p | (~p) 结果为1.

p & (~p) 结果为0.

any和all函数在连接操作时很有用,设x是0-1向量,如果x中任意有一元素非零时,any(x)返回“1”,否则返回“0”;all(x)函数当x的所有元素非零时,返回“1”,否则也返回“0”.这些函数在if语句中经常被用到.如:

if all(A<5)

do something

end

另外,还有"&&"和"||"运算符,Matlab中的逻辑运算"&&"与"&","||"与"|"的区别如下:&&和||被称为&和|的short circuit形式,

A&B

(1)首先判断A的逻辑值,然后判断B的值,然后进行逻辑与的计算。

(2)A和B可以为矩阵(e.g. A=[1 0],B=[0 0])。

A&&B

(1)首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要

再判断B的值。

(2)A和B不能是矩阵,只能是标量。

"|"与“||”同理。

A&&B 首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。这种用法非常有用,如果A是一个计算量较小的函数,B是一个计算量较大的函数,那么首先判断A对减少计算量是有好处的。另外这也可以防止类似被0除的错误:

flag=denum~=0 && num/denum>10

if flag

%Do Something

end if

上面的表达式就可以防止denum等于0的情况。当然,如果你希望在判断的时候,对A和B 表达式都进行计算,就应该使用标准的&或者|。Matlab中的if和while语句中的逻辑与和逻辑或都是默认使用short-circuit形式。

if flag=denum~=0 && num/denum>10

%Do Something

end if

if flag=denum~=0 & num/denum>10

%Do Something

end if

执行的结果一样

符号

符号用途说明

+

-

.*

点乘详细说明help arith

矩阵相乘

矩阵求幂

.^

点幂

左除详细说明help slash 右除

.

点左除

.

点右除

kron

张量积详细说明help kron

作分隔用,如把矩阵元素、向量参数、函数参数、几个表达式分隔开来

(a)写在一个表达式后面时,运算后命令窗口中不显示表达式的计算结果

(b)在创建矩阵的语句中指示一行元素的结束,例如m=[x y z;i j k]

(a)创建向量的表达式分隔符,如x=abc

(b)a(,j)表示j列的所有行元素;a(i,)表示i行的所有列元素;a(13,4)表示第四列的第1行至第3行元素

()

圆括号

[]

创建数组、向量、矩阵或字符串(字母型)

{}

创建单元矩阵(cell array)或结构(struct)

%

注释符,特别当编写自定义函数文件时,紧跟function后的注释语句,在你使用help函数名时会显示出来。

'

(a)定义字符串用

(b)向量或矩阵的共轭转置符

.'

一般转置符

...

表示MATLAB表达式继续到下一行,增强代码可读性

赋值符号

==

等于关系运算符

<,>

小于,大于关系运算符详细说明help relop

&

逻辑与

逻辑或

~

逻辑非

xor

逻辑异或

符号

符号用途说明

+

-

.*

点乘详细说明help arith

矩阵相乘

矩阵求幂

.^

点幂

左除详细说明help slash 右除

.

点左除

.

点右除

kron

张量积详细说明help kron

作分隔用,如把矩阵元素、向量参数、函数参数、几个表达式分隔开来

(a)写在一个表达式后面时,运算后命令窗口中不显示表达式的计算结果

(b)在创建矩阵的语句中指示一行元素的结束,例如m=[x y z;i j k]

(a)创建向量的表达式分隔符,如x=abc

(b)a(,j)表示j列的所有行元素;a(i,)表示i行的所有列元素;a(13,4)表示第四列的第1行至第3行元素

()

圆括号

[]

创建数组、向量、矩阵或字符串(字母型)

{}

创建单元矩阵(cell array)或结构(struct)

%

注释符,特别当编写自定义函数文件时,紧跟function后的注释语句,在你使用help函数名时会显示出来。

'

(a)定义字符串用

(b)向量或矩阵的共轭转置符

.'

一般转置符

...

表示MATLAB表达式继续到下一行,增强代码可读性

赋值符号

==

等于关系运算符

<,>

小于,大于关系运算符详细说明help relop

&

逻辑与

逻辑或

~

逻辑非

xor

逻辑异或

MATLAB数据及其运算_习题答案

第2章 MATLAB数据及其运算 习题2 一、选择题 1.下列可作为MATLAB合法变量名的是()。D A.合计 B.123 C.@h D.xyz_2a 2.下列数值数据表示中错误的是()。C A.+10 B. C.2e D.2i 3.使用语句t=0:7生成的是()个元素的向量。A A.8 B.7 C.6 D.5 4.执行语句A=[1,2,3;4,5,6]后,A(3)的值是()。B A.1 B.2 C.3 D.4 5.已知a为3×3矩阵,则a(:,end)是指()。D A.所有元素 B.第一行元素 C.第三行元素 D.第三列元素 6.已知a为3×3矩阵,则运行a (1)=[]后()。A A.a变成行向量 B.a变为2行2列 C.a变为3行2列 D.a变为2行3列 7.在命令行窗口输入下列命令后,x的值是()。B >> clear >> x=i*j A.不确定 B.-1 C.1 D.i*j 8.fix(354/100)+mod(354,10)*10的值是()。D A.34 B.354 C.453 D.43 9.下列语句中错误的是()。B A.x==y==3 B.x=y=3 C.x=y==3 D.y=3,x=y 10.find(1:2:20>15)的结果是()。C A.19 20 B.17 19 C.9 10 D.8 9 11.输入字符串时,要用()将字符括起来。C A.[ ] B.{ } C.' ' D." " 12.已知s='显示"hello"',则s的元素个数是()。A A.9 B.11 C.7 D.18

13.eval('sqrt(4)+2')的值是()。B A.sqrt(4)+2 B.4 C.2 D.2, 2 14.有3×4的结构矩阵student,每个结构有name(姓名)、scores(分数)两个成 员,其中scores是以1×5矩阵表示的5门课的成绩,那么要删除第4个学生的第2门课 成绩,应采用的正确命令是()。D A.rmfield(student(1,2).scores(2)) B.rmfield(student(4).scores) C.student(4).scores(2)=0 D.student(1,2).scores(2)=[] 15.有一个2行2列的单元矩阵c,则c(2)是指()。B A.第一行第二列的元素内容 B.第二行第一列的元素内容 C.第一行第二列的元素 D.第二行第一列的元素 二、填空题 1.从键盘直接输入矩阵元素来建立矩阵时,将矩阵的元素用括起来,按矩阵 行的顺序输入各元素,同一行的各元素之间用分隔,不同行的元素之间用 分隔。中括号,逗号或空格,分号 2.设A=[1,2;3,4],B=[5,6;7,8],则A*B= , A.*B= 。 A*B=[19,22;43,50],A.*B=[5,12;21,32] 3.有3×3矩阵,求其第 5个元素的下标的命令是,求其第三行、第三列元 素的序号的命令是。[i,j]=ind2sub([3 3],5),ind=sub2ind([3 3],3,3) 4.下列命令执行后的输出结果是。20 >> ans=5; >> 10; >> ans+10 5.下列命令执行后,new_claim的值是。This is a great example. claim= 'This is a good example.'; new_claim=strrep(claim,'good','great') 三、应用题 1.命令X=[]与clear X有何不同请上机验证结论。 Clear X是将X从工作空间中删除,而X=[]是给X赋空矩阵。空矩阵存在于工作空间 中,只是没有任何元素。 2.在一个MATLAB命令中,6?+?7i和6?+ 7*i有何区别i和I有何区别 3.设A和B是两个同大小的矩阵,试分析A*B和A.*B、A./B和B.\A、A/B和B\A的 区别如果A和B是两个标量数据,结论又如何 4.写出完成下列操作的命令。 (1)将矩阵A第2~5行中第1,3,5列元素赋给矩阵B。 (2)删除矩阵A的第5号元素。

第2章matlab数据及其运算_习题答案

第2章M A T L A B数据 及其运算_习题答案-CAL-FENGHAI.-(YICAI)-Company One1

第2章 MATLAB数据及其运算 习题2 一、选择题 1.下列可作为MATLAB合法变量名的是()。D A.合计 B.123 C.@h D.xyz_2a 2.下列数值数据表示中错误的是()。C A.+10 B. C.2e D.2i 3.使用语句t=0:7生成的是()个元素的向量。A A.8 B.7 C.6 D.5 4.执行语句A=[1,2,3;4,5,6]后,A(3)的值是()。B A.1 B.2 C.3 D.4 5.已知a为3×3矩阵,则a(:,end)是指()。D A.所有元素 B.第一行元素 C.第三行元素 D.第三列元素 6.已知a为3×3矩阵,则运行a (1)=[]后()。A A.a变成行向量 B.a变为2行2列 C.a变为3行2列 D.a变为2行3列 7.在命令行窗口输入下列命令后,x的值是()。B >> clear >> x=i*j A.不确定 B.-1 C.1 D.i*j 8.fix(354/100)+mod(354,10)*10的值是()。D A.34 B.354 C.453 D.43 9.下列语句中错误的是()。B A.x==y==3 B.x=y=3 C.x=y==3 D.y=3,x=y 10.find(1:2:20>15)的结果是()。C A.19 20 B.17 19 C.9 10 D.8 9 11.输入字符串时,要用()将字符括起来。C A.[ ] B.{ } C.' ' D." " 12.已知s='显示"hello"',则s的元素个数是()。A A.9 B.11 C.7 D.18

第2章 MATLAB数据及其运算

MATLAB应用 第2章MATLAB数据及其运算 MATLAB数据的特点 2.1 MATLAB数据的特点 ●矩阵 ●是MATLAB最基本、最重要的数据对象,MATLAB的大部分运算或命令 都是在矩阵运算的意义下执行的,而且这种运算定义在复数域上。向量和单个数据都可以作为矩阵的特例来处理。 ●数值数据 ●双精度型、单精度数、带符号整数和无符号整数。 ●字符数据 ●结构体(Structure)和单元(Cell)数据类型。 ●稀疏矩阵(Sparse) ●逻辑型数据 ●在MATLAB中,以数值1(非零)表示“真”,以数值0表示“假”。 2.2 变量及其操作 ●变量和赋值 ●变量命名的规则 ●变量名的第一个字符必须是英文字母,最多可以包含63个字符。 ●变量名中不能有空格、标点,但可以有下划线如my_var1。 ●变量名、函数名对大小写敏感,如my_data和My_data就不是一个变量。 ●给变量起名时不要和这些保留字冲突。 ●变量不需要事先说明,用赋值语句就定义了变量。变量的类型由赋值语句等号右边的数字 形式决定,免去了高级语言中那种冗长的说明语句。编程过程中,尽量不要与系统变量名冲突,如果你赋值给系统变量,将把变量中的原值冲掉,对计算不利。只有在重新启动后才能恢复原保留值。 2.2 变量及其操作(续) ●赋值语句 ●(1) 变量=表达式 ●(2) 表达式 ●其中表达式是用运算符将有关运算量连接起来的式子,其结果是 一个矩阵。

例2.1 计算表达式的值,并将结果赋给变量x,然后显示计算结果。 在MATLAB命令窗口输入命令: 常用MATLAB预定义变量 2.2 变量及其操作(续) ●数据的输出格式 ●MATLAB用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。 ●在一般情况下,MATLAB内部每一个数据元素都是用双精度数来表示和存储的。 ●MATLAB默认的数据显示格式为短格式(short):当结果为整数,就作为整数显示;当结果是实数,以小数点后四位的长度显示。若结果的有效数字超出一定范围,以科学计数法显示(如 3.2000e-006表示)。 2.2 变量及其操作(续) ●数据输出时用户可以用format命令设置或改变数据输出 格式。 ●format命令的格式为: format 格式符 其中格式符决定数据的输出格式 控制数据输出的格式符及含义 ●上机练习: ●验证各数据输出格式的输出结果。

相关主题
文本预览
相关文档 最新文档