-1

我想在 matlab 中对我的双数使用 xor,但 bitxor 仅适用于 int 数。Matlab中是否有可以将double转换为int的函数?

4

2 回答 2

1

您正在寻找的函数可能是:int8(number), int16(number),它们中uint32(number)的任何一个都会将 Double 转换为 Integer,但您必须选择最适合您想要实现的结果的函数。请记住,如果不对数字进行四舍五入,就不能从 Double 转换为 Integer。

如果我正确地理解了你,你可以创建一个函数,通过将起始值乘以 2^n,然后使用前面提到的任何函数将其转换为 Integer 来简单地从 Double 数字中删除“逗号”,执行任何你想要的然后通过将数字除以 2^n 将逗号返回到其原始位置

将起始值乘以 2^n 是一种可以减少舍入误差的技巧。如果这个数字相对较小,则n的完美值将是逗号后面的位数。

还请说明,您为什么要这样做?这似乎不是最佳解决方案。

于 2013-07-19T08:29:15.397 回答
0

您可以只转换为整数:

a = 1.003

int8(a)

ans =

1

这为您提供了一个 8 位有符号整数,您还可以获得其他大小的 ieint16或无符号 ie uint8,具体取决于您想要做什么

于 2013-07-19T08:14:02.063 回答