限制变量在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
并且大多数函数需要 double
或 single
输入,因此我不确定您是否会在 Matlab 中获得任何效率方面的好处。
我正在用 Matlab 编写一个进化优化程序。我希望所有变量的小数点数都有限。 (原因是为了减少搜索 space。例如,如果 1 < x < 2 ,如果小数位数固定为一位,我将只有 9 个 x 选项。)使用 'round' 是好吧,但在计算上有点昂贵。我看到 'digits' 修复了,但在内存中它保存了所有数字。
感谢任何帮助, 提前谢谢了, 艾哈迈德
通常进行固定宽度优化的方式是使用大整数。 例如,如果您想将计算精度限制为 6 位数字,那么您可以截断所有乘以一百万的值。
与浮点数字格式相比,整数类型的算术运算快速且准确。不过,鉴于数字类型通常默认为 double
并且大多数函数需要 double
或 single
输入,因此我不确定您是否会在 Matlab 中获得任何效率方面的好处。