请问高手:在matlab中,&和&&的区别?

作者&投稿:康肃 (若有异议请与网页底部的电邮联系)
计算机编程语言有哪些?~


编程语言较多常用的有c,c++,java,c#,perl,Delphi等,我建议按Python->C++ 这个顺序学,
基本上学通这两种语言就够用了,最好在了解一下汇编和c就更好了。
python是一种脚本语言,简单易学,可跨平台运行(windows,linux,部分手机等),配合第三方库可以实现许多常用功能,例如建站,谷歌的搜索引擎就是用它开发的。
c++是经典的编程语言就不多说了。将python与c++结合起来编程威力强大。
但不知是否可以完全代替java等语言呢?有待检验。其他语言应该也有其各自优点和用途,只是编程语言很多,并且想真正学通一种语言很费时间,如果 将所有语言学会是不可能的,即使全部学会的话,真正应用起来大概只需一两种语言足以。
因此建议挑一两种常用且功能强大覆盖范围广的语言即可。

1、用法不同

&适用于矩阵间的逻辑运算,&&不适用,只适用于单个元素,包括数值和字符。

2、使用效果不同

当判断两个逻辑值时,例如A&(f(x)>c)和A&&(f(x)>c)时,对于第一种情况,不论A是否为真,A和(f(x)>c)都要计算,但是对第二种情况,如果A是false,那么后面的(f(x)>c)就不用计算了,倘若f(x)是一个计算量大的函数,那么这将节省很多时间。

扩展资料:

&与&&的具体用法

一、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表达式都进行计算,就应该使用标准的&或者|。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

执行的结果一样。



【转】Matlab中的逻辑运算"&&"与"&","||"与"|"的区别 (2009-12-06 20:59:06)转载
标签: 杂谈
逻辑运算符:

&

|

~


“&”和“|”操作符可比较两个标量或两个同阶矩阵.对于矩阵来说必须符合规则,如果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
逻辑异或

资料来源:http://blog.sina.com.cn/s/blog_5eb8c9aa0100g5ao.html

&&是截断的,如果第一项是false,不再计算第二项

对使用者来说没有什么区别,两者通用。
对于MATLAB来说,x & y表示x和y都为真,其表达式为1,它需要把两者同时计算。
x && y表示当计算x为0时,其表达式就为0,就不用计算y了。更智能一些。
以上都是大家这么说的。其实我也不知道怎么测试两者的区别,因为对于我们来说,它们两个都是一样用的。


请问英文高手material这个词的简写怎么写?在线等
MATL应该是 参考http:\/\/www.abbreviations.com\/

ASME CLASS 150 MG(MATL GROUP)1.1 后面的MG1.1是什么意思,哪里可以...
同意楼上意见。看起来MG是指的材料组别,该材料组别可以在ASME B16.5中的TABLE 1A List of Material Specification 中查到。表中的部分内容如下:

SD 创建物料主档时MM01 关于SD的部分要维护什么数据
比如: 在Sales : general\/plant 选项卡中的 Matl grp pack.matls : 如果是包装的财料 这里就一定要维护国学大师王国维先生认为古今成大事业、大学问者,必经过三种境界,第一种境界:“ 昨夜西风凋碧树。独上高楼,望尽天涯路”;第二种境界:“衣带渐宽终不悔,为伊消得 人憔悴”,第三种境...

...10.35*cos(x\/2)^2+7.2 用matlab求出的答案看的有问题,请教高手...
fzero('2*tan(x\/2).*(0.3-3.45*cos(x\/2).^2)-10.35*cos(x\/2).^2+7.2',[-30,10])你把我这个运行一下,你要把向量的*改为.*,平方改为.^。最后把区间改一下,因为分fzero这个函数的运行条件是断点的函数值要不同的符号。

河间市15078859023: matlab中&和&&有什么不同 -
庾恒儿宝: 如果我没有记错的话,这两个都是与的意思. 两者的区别在于: &需要计算完前后两个式子的值,然后再来逻辑与. &&先计算前面的式子的值,如果为0,则直接输出0,调过后面式子的计算.更加智能化.

河间市15078859023: MATLAB逻辑问题&&和|| -
庾恒儿宝: 此处用&& & 是位运算符 你可以尝试,当你写&时,matlab会有警告提示的.

河间市15078859023: matlab的程序中“&&”是不是也是表示逻辑关系“与”,那这与“&”只用一个的有什么区别吗matlab高手解决 -
庾恒儿宝:[答案] && Short-Circuit Logical AND. 在Matlab的说明文档中指出,&&是逻辑与,适用于两个标量,不能使用矢量. 同时&&是短路运算,也就是说 在计算A && B结果时,如果A已经为0,那么不计算B的表达式,结果为0;如果A不为0,那么再计算B的结果. ...

河间市15078859023: 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不能是矩阵,只能是标量. PS:matlab里面的“|”和“||”运算符也有这样的区别. 望楼主采纳!

河间市15078859023: 在MATLAB中 “双竖线”表示什么 也就是&&这个符号 -
庾恒儿宝: 逻辑运算符&&表示与 ||表示或

河间市15078859023: matlab 逻辑运算"&"是什么意思? -
庾恒儿宝: 表示逻辑上的“与” 逻辑运算符:“&”和“|”操作符可比较两个标量或两个同阶矩阵.对于矩阵来说必须符合规则,如果A和B都是0-1矩阵,则A&B或A|B也都是0-1矩阵,这个0-1矩阵的元素是A和B对应元素之间逻辑运算的结果,...

河间市15078859023: matlab中报错,|| and && 的操作对象必须被转变成逻辑标量值,啥意思??求高手解答 -
庾恒儿宝: 将原程序中的 && 改成 & 就可以了.GP(k+1)=length(find(A>=k*1000 & A&是逻辑AND运算.&& 也是逻辑AND,但它附带一种称为“短路”的效果.只有当&&左侧的运算元成立时电脑才会继续进行 && 右侧的运算元.比如:A & B (A 和 B 都被计算) A && B (只有当A是true的情况下才会计算B)

河间市15078859023: matlab 中一个&什么意思 -
庾恒儿宝: matlab &与&&的区别 http://jingyan.baidu.com/article/7f766daf47b19f4101e1d0bc.html

河间市15078859023: MATLAB小白又来问问题了 高手么请问逻辑非的符号在键盘的哪里 好像不是减号啊 求助 -
庾恒儿宝: 是“~”逻辑运算符号:& 与,| 或,~ 非...

河间市15078859023: 在matlab中x1,x2,x3=0或1怎么表示???求大神啊! -
庾恒儿宝: (x1==0&&x2==0&&x3==0)||(x1==1&&x2==1&&x3==1)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网