限制变量在Matlab中采用固定的小数位数

Restricting the variables to take a fixed number of decimal places in Matlab

我正在用 Matlab 编写一个进化优化程序。我希望所有变量的小数点数都有限。 (原因是为了减少搜索 space。例如,如果 1 < x < 2 ,如果小数位数固定为一位,我将只有 9 个 x 选项。)使用 'round' 是好吧,但在计算上有点昂贵。我看到 'digits' 修复了,但在内存中它保存了所有数字。

感谢任何帮助, 提前谢谢了, 艾哈迈德

通常进行固定宽度优化的方式是使用大整数。 例如,如果您想将计算精度限制为 6 位数字,那么您可以截断所有乘以一百万的值。

与浮点数字格式相比,整数类型的算术运算快速且准确。不过,鉴于数字类型通常默认为 double 并且大多数函数需要 doublesingle 输入,因此我不确定您是否会在 Matlab 中获得任何效率方面的好处。