永发信息网

matlab中条件语句中还想加其他变量的判断条件该如何编写?

答案:2  悬赏:60  手机版
解决时间 2021-02-08 02:08
  • 提问者网友:書生途
  • 2021-02-07 06:30
matlab中条件语句中还想加其他变量的判断条件该如何编写?
最佳答案
  • 五星知识达人网友:廢物販賣機
  • 2021-02-07 07:40
x=1;
y=2;
if (x==1 && y==2)
z=1;
end

你说的是不是这些条件判断
全部回答
  • 1楼网友:不如潦草
  • 2021-02-07 08:20
您好,比如 switch expr case {a1, a2,...} do_something_1; case b do_something_2; case {c1,c2,...} do_something_3; ... end expr表达式从上至下寻找匹配,当它与某个case后面的元胞数组中的某个元素匹配,则执行该case分支的操作,然后跳出switch-case结构。 注意,matlab中switch后面的表达式可以是显式逻辑值,即逻辑0和1(因此含比较运算的表达式不算在内)、标量或者字符串,因而case后面如果不是这些类型的值,那么就不匹配。 与switch语句相比,if语句则灵活得多,if后面的表达式几乎可以是任意的表达式。 下面举个综合的例子来说明switch表达式的特性,比如 switch 1 case [2,1] disp('case1') case {3,1} disp('case2') case {1,2} disp('case3') end 复制代码 结果返回 case2 这说明,不符合条件的case(第一个case类型不对)不匹配;出现重叠的情况(第二、三个case),switch仅仅匹配最前面一个。 之所以maltab只是匹配最前面的,就是因为它支持了case后面可以使用元胞数组的情况,这就相当于多个重复匹配的case集中在一起(这就相当于实现c/c++中不加break的情形)。 另外,如果使用if-elseif结构来实现上述功能,也是可行的,但是if-elseif本身是一个实现复杂分支程序流的结构,对于case情况非常多的时候,使用if-elseif不但代码量很大,而且可读性也没switch那么清晰(杀鸡焉用牛刀)。而使用switch-case结构,则能缩减代码量,可读性也好得多。 对于效率方面,switch-case和if-elseif结构实现同样功能,究竟孰优孰劣,这个就有待测试的检验了。个人认为if-elseif的效率更低,有2点原因: 1. switch-case语句只需要计算一次switch后面的表达式,然后去匹配各个case;而if-elseif对于每个if后面的表达式都要进行计算,然后判断。 2. 从汇编的角度来说,if...elseif编译完后是很多条比较指令和跳转指令,而switch-case语句编译完之后,则是一张地址表,使用case的值做表的索引,因此case里的值最好步进为一。 总的来说,switch-case语句牺牲了灵活性,但提高了效率并使得代码整洁。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯