if结构matlab,matlab中if语句and
请问⾼⼿:在matlab中,&和&&的区别
【转】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的值。
matlab定义函数表达式(2)A和B不能是矩阵,只能是标量。"|"与“||”同理。
A&&B ⾸先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。这种⽤法⾮常有⽤,如果A是⼀个计算量较⼩的函数,B是⼀个计算量较⼤的函数,那么⾸先判断A对减少计算量是有好处的。
另外这也可以防⽌类似被0除的错误:flag=denum~=0 && num/denum>10if flag %Do Somethingend if上⾯的表达式就可以防⽌denum等于0的情况。当然,如果你希望在判断的时候,对A和B表达式都进⾏计算,就应该使⽤标准的&或者|。
Matlab中的if和while语句中的逻辑与和逻辑或都是默认使⽤short-circuit形式。if flag=denum~=0 && num/denum>10 %Do Somethingend if与if flag=denum~=0 & num/denum>10 %Do Somethingend 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函数名时会显⽰出来。
在matlab 中if 语句
这个问题有点怪,
第⼀个问题,如果你是为了显⽰的⽬的,建议你使⽤字符串的形式,因为matlab⾃动会把0000省略成0的。
a='0000';
若要⽤⾥⾯的数值,则可⽤⼀个函数转过来str2num(a)=0;
第⼆个问题,看你的表⽰应该是判断吧,可以⽤下⾯的语句实现你要的功能:
a=[(a>=10)]
第三个问题,如何把.M⽂件导成.dat⽂件,你说的是导出结果数据吗?我还没有听说过直接把M⽂件变成dat⽂件。如果是导出数据的话,可以使⽤fprintf函数。fprintf 使⽤例⼦:
x = 0:.1:1; y = [x; exp(x)];
fid = fopen('','w');
fprintf(fid,'%6.2f %12.8f\n',y);
fclose(fid);
matlab if语句
在MATLAB中,if语句有3种格式。
(1) 单分⽀if语句:if 条件 语句组 end当条件成⽴时,则执⾏语句组,执⾏完之后继续执⾏if语句的后继语句,若条件不成⽴,则直接执⾏if 语句的后继语句。 (2) 双分⽀if语句:if 条件 语句组1 else 语句组2 end 当条件成⽴时,执⾏语句组1,否则执⾏语句组2,语句组1或语句组2执⾏后,再执⾏if语句的后继语句。
(3) 多分⽀if语句:if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组n end语句⽤于实现多分⽀选择结构。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论