EDA365电子论坛网

标题: 请问如下表达式为什么会成立,matlab版本? [打印本页]

作者: tuoni    时间: 2020-4-22 14:39
标题: 请问如下表达式为什么会成立,matlab版本?
请问如下表达式为什么会成立,matlab版本:R2014a调试别人旧代码发现的问题,A是从别的地方获取到的值。原本的逻辑感觉是str2num(A) > B,但现在无论A为何值,if的条件都成立
1 X  R  Y5 t8 \' [4 d. B6 d2 f* H/ w8 `$ l
请教大神,非常感谢!) k1 ~+ a3 h% w
7 U1 p. R" v* C/ U$ ~0 y, P
4 p  k" p: R& ?! _5 {1 T1 T

2 D  _) |6 t) K9 L. L, U  ~  [4 v2 J
作者: mnfvbnk    时间: 2020-4-22 15:23
A,B的类型不一样,换成一样的类型试试
作者: Colbie    时间: 2020-4-22 16:22
因为字符串'1'实际上是char(49)
' W1 T+ `* B2 ^% q字符串'2'实际上是char(50)
1 u+ m( t9 O- J7 [) z比较的时候实际上是数组A = [49 50]与B = 21比较0 v6 R& T, _- [" [5 Q
结果显而易见是逻辑数组[1 1]
/ V" A8 g" v; i# g+ a* U做个减法A-B看结果就很明显了) ~& x' E; O: v, H+ E
或者也可以用char(B)来看B在字符串排序中的位置




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2