eqObj

语法

eqObj(obj1, obj2, [precision])

参数

obj1obj2 可以是标量、数据对、向量或矩阵。

precision 是一个非负整数,表示对FLOAT或DOUBLE类型,比较精度为小数点后几位。

详情

检验两个对象的类型和值是否相同。只有当类型和值都相同时,此函数才会返回true。 如果值相同但类型不同,则此函数仍返回false,这与函数 eq 不同。

注意:使用 eqObj 比较浮点数时,根据 abs(obj1-obj2)<=pow(10,-precision) 的结果来判断 obj1 和 obj2 的值是否相等。

例子

$ eqObj(2, 2.0);
false

$ eq(2, 2.0);
true

$ eqObj(1.1, 1.2, 0);
true

$ eqObj(1.1, 1.2, 1);
false

$ eqObj(1 2 3, 1 2 3);
true
$ eq(1 2 3, 1 2 3);
[true,true,true]

eqObj不能直接用于比较两个表是否相同。但是,可以使用高阶函数 each 来逐列对比两个表的值。

$ t1=table(1 2 3 as x, 4 5 6 as y);
$ t2=table(1 2 3 as x, 4 5 6 as y);

$ t1.values();
([1,2,3],[4,5,6])

$ each(eqObj, t1.values(), t2.values());
[true,true]