20 PSYCHTOOLBOX工具箱及MATLAB编程实例 >b<3 ans 01, 2.大于等于和小于等于(>=、<=) >a=randi(10,[1,51)k a 63 453 >a>=5 ans 0010 >a<-3 ans 1 00 1 3.等于和不等(=、=) >a=rand1(10,t1,5])2 a- 92 323 >a=2 ans- 0 010 >a=2 ans 0 28 >>awmb ans 0 1 1 1 1 3.5.3逻辑运算符 1.逻辑与(&、&&),两个对象均为真,结果才为真 >disp(a ss c) 2.逻辑或(小、川),两个对象中只要有一个为真,结果就为真 >>a=5:b=3:c=0: >disp(a l b) >disp(b1c)
第3章MATLAB编程基础 21 1 3.逻辑非(~),原结果为真,则变为假,原结果为假,则改变为真 230 ans 0 >>-cE ans 1 ans 0 3.5.4逻辑运算函数 1.异或运算(xo),两个对象一个为真,一个为假时,结果为真:否则结果为假 >a=5;b-3;c-2; >xor(a>b,b>c) ans 0 >xorlasb.c<b) an5 2.位与运算(bitand),非负整数二进制位之间的与运算 >bitand(3,5) ans 3.位或运算(bitor) >bitor(3,5) ans 4.位反运算(bitcmp) >bitcmp (uint8 (3)) 5.位异或运算(bitxor) >b1txor(3,5)2 ans 6.任意为真(any) >a=randi ([0 1],4) a■ 0 10 1
22 PSYCHTOOLBOX工具箱及MATLAB编程实例 0 >any (a) ans 0 1 1 1 >any(a,2)∠ ans 1 函数ay的第2个参数指定在行或列上进行判断,默认值为1,在列上判断,即某列的各个值只 要有任意一个为真,即为真:如果参数值为2,则在行上判断,即某行的各个值只要有任意一个为真, 即为真 7.所有为真(al >a=randi ([0 1],4) a 1 1 1 0 0 >a11(a)2 ans 0 0 0 0 >a11(a,2) ans 0 函数al的第2个参数的含义与函数any相同。 3.6过程控制 过程控制用于控制程序的流程,如不同条件下执行的代码片段不同,常用的过程控制结构有如下 几种。 3.6.1f条件语句 对于简单的if条件语句,可采用如下形式(如果条件表达式expression为值,则执行statements 语句) if expression,statements,end 对于复杂的if条件语句,可采用下面的形式(更具有可读性)。如果表达式expressionl为真,则 执行statementsl语句并结束判断。如果表达式expressionl为假,则判断表达式expression2是否为真
第3章MATLAB编程基础 23 如果为真,则执行statements2语句并结束判断;如果表达式expression2为假,以此类推,如果所有带 if字样的分支都不满足,则执行else后面的语句statements3(如果有clsc的话)。 if expressionl ateon2 else 程序示例:根据学生编号的奇偶平衡反应按键。 els orrectKey一Name('j');号否则,如是偶数,正确按键为J键 end 或者写成 if mod(subid,2),correctKey-KbName('f');else,correctKey=KbName ('j');end 程序示例:根据Q进行等级划分 1f1qp=13 超常 20 e1seq 0 elseif ig desc='中下; els desc'较差 end 在上面的例子中,需要注意分界值应按一定顺序给出,否则可能会得不出正确结果。例如,下面 代码中交换了分界值100和110的位置,当iq115时,变量desc的值为“中上”. 1fig>=130 ,好 else sc-'较差' end
24 PSYCHTOOLBOX工具箱及MATLAB编程实例 i「条件语句还可以嵌套。假如,一个2×2实验设计,两个自变量的水平值分别用1和2来表示 我们通过f语句来设置需要呈现的图片名称(当然有更简单的方法实现),程序示例如下(其中v1和 v2为两个自变量): if vi- else filename='f2.bmp'; if v2-1 ilename='f3.bmp' else ilename='f4.bmp'; end end 上面语句也可以利用关系运算符改写为如下形式 1fv1==156v2==1 -'f1.bmp' ame'f2. elseif v2-1 s4 v2 filename='f3.bmp' else ilename-'f4.bmp'; end 3.6.2 switch条件语句 switch条件语句的结构如下: statement2 case_expr3,.1 ise statement5,.statement6 end 根据表达式switch_expr的值转入对应的条件分支,即如果表达式switch_cxpr的值符合case expr 条件,则执行语句statementl,.statement2:如果符合case exprl,case expr2,case expr3.中任何一个 条件,则执行语句statement3,statement4当上述条件均不满足,并且有otherwise关键词时,则执 行其后的语句statement5,statement6。在判断的过程中,按照case语句顺序,只要符合当前的casc 语句,则后面的case语句及otherwise语句均略过, 程序示例:根据月份字符判断季度 b) nd sea on) case ('Jul','Aug','sep');